本文整理匯總了Python中torch.rand方法的典型用法代碼示例。如果您正苦於以下問題:Python torch.rand方法的具體用法?Python torch.rand怎麽用?Python torch.rand使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類torch
的用法示例。
在下文中一共展示了torch.rand方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test_tf2torch
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_tf2torch(tf_model,torch_model,input_shape, num_rand_inp=10, precision=10**-2):
"""
Checks consistency of torch and tf models before generating attacks
:param tf_model: copied tf model
:param torch_model: torch model to be transferred to tf
:param input_shape: Format Channels X Height X Width
:param num_rand_inp: number of random inputs to test consistency on
:return: raises error if the outputs are not consistent
"""
torch_model.eval()
rand_x = torch.rand(num_rand_inp,input_shape[0],input_shape[1],input_shape[2])
tf_op = tf_model.predict(rand_x.numpy())
torch_op = F.softmax(torch_model(Variable(rand_x))).data.numpy()
assert tf_op.shape == torch_op.shape, "Mismatch of dimensions of the outputs from tf and torch models"
assert np.linalg.norm(torch_op-tf_op)/np.linalg.norm(torch_op)<=num_rand_inp*precision, "Outputs of the torch and tensorflow models" \
"do not agree"
pass
示例2: test_prediction_output
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_prediction_output(self):
model = SimpleModel()
dp = DataProcessor(model=model)
self.assertFalse(model.fc.weight.is_cuda)
res = dp.predict({'data': torch.rand(1, 3)})
self.assertIs(type(res), torch.Tensor)
model = NonStandardIOModel()
dp = DataProcessor(model=model)
self.assertFalse(model.fc.weight.is_cuda)
res = dp.predict({'data': {'data1': torch.rand(1, 3), 'data2': torch.rand(1, 3)}})
self.assertIs(type(res), dict)
self.assertIn('res1', res)
self.assertIs(type(res['res1']), torch.Tensor)
self.assertIn('res2', res)
self.assertIs(type(res['res2']), torch.Tensor)
示例3: test_prediction_train_output
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_prediction_train_output(self):
model = SimpleModel()
train_config = TrainConfig(model, [], torch.nn.Module(), torch.optim.SGD(model.parameters(), lr=0.1))
dp = TrainDataProcessor(train_config=train_config)
self.assertFalse(model.fc.weight.is_cuda)
res = dp.predict({'data': torch.rand(1, 3)}, is_train=True)
self.assertIs(type(res), torch.Tensor)
model = NonStandardIOModel()
train_config = TrainConfig(model, [], torch.nn.Module(), torch.optim.SGD(model.parameters(), lr=0.1))
dp = TrainDataProcessor(train_config=train_config)
self.assertFalse(model.fc.weight.is_cuda)
res = dp.predict({'data': {'data1': torch.rand(1, 3), 'data2': torch.rand(1, 3)}}, is_train=True)
self.assertIs(type(res), dict)
self.assertIn('res1', res)
self.assertIs(type(res['res1']), torch.Tensor)
self.assertIn('res2', res)
self.assertIs(type(res['res2']), torch.Tensor)
self.assertTrue(model.training)
self.assertFalse(res['res1'].requires_grad)
self.assertIsNone(res['res1'].grad)
self.assertFalse(res['res2'].requires_grad)
self.assertIsNone(res['res2'].grad)
示例4: test_prediction_notrain_output
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_prediction_notrain_output(self):
model = SimpleModel()
train_config = TrainConfig(model, [], torch.nn.Module(), torch.optim.SGD(model.parameters(), lr=0.1))
dp = TrainDataProcessor(train_config=train_config)
self.assertFalse(model.fc.weight.is_cuda)
res = dp.predict({'data': torch.rand(1, 3)}, is_train=False)
self.assertIs(type(res), torch.Tensor)
model = NonStandardIOModel()
train_config = TrainConfig(model, [], torch.nn.Module(), torch.optim.SGD(model.parameters(), lr=0.1))
dp = TrainDataProcessor(train_config=train_config)
self.assertFalse(model.fc.weight.is_cuda)
res = dp.predict({'data': {'data1': torch.rand(1, 3), 'data2': torch.rand(1, 3)}}, is_train=False)
self.assertIs(type(res), dict)
self.assertIn('res1', res)
self.assertIs(type(res['res1']), torch.Tensor)
self.assertIn('res2', res)
self.assertIs(type(res['res2']), torch.Tensor)
self.assertFalse(model.training)
self.assertFalse(res['res1'].requires_grad)
self.assertIsNone(res['res1'].grad)
self.assertFalse(res['res2'].requires_grad)
self.assertIsNone(res['res2'].grad)
示例5: test_train
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_train(self):
model = SimpleModel().train()
train_config = TrainConfig(model, [], torch.nn.Module(), torch.optim.SGD(model.parameters(), lr=0.1))
dp = TrainDataProcessor(train_config=train_config)
self.assertFalse(model.fc.weight.is_cuda)
self.assertTrue(model.training)
res = dp.predict({'data': torch.rand(1, 3)}, is_train=True)
self.assertTrue(model.training)
self.assertTrue(res.requires_grad)
self.assertIsNone(res.grad)
with self.assertRaises(NotImplementedError):
dp.process_batch({'data': torch.rand(1, 3), 'target': torch.rand(1)}, is_train=True)
loss = SimpleLoss()
train_config = TrainConfig(model, [], loss, torch.optim.SGD(model.parameters(), lr=0.1))
dp = TrainDataProcessor(train_config=train_config)
res = dp.process_batch({'data': torch.rand(1, 3), 'target': torch.rand(1)}, is_train=True)
self.assertTrue(model.training)
self.assertTrue(loss.module.requires_grad)
self.assertIsNotNone(loss.module.grad)
self.assertTrue(np.array_equal(res, loss.res.data.numpy()))
示例6: test_metrics_group_calculation
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_metrics_group_calculation(self):
metrics_group_lv1 = MetricsGroup('lvl').add(SimpleMetric())
metrics_group_lv2 = MetricsGroup('lv2').add(SimpleMetric())
metrics_group_lv1.add(metrics_group_lv2)
values = []
for i in range(10):
output, target = torch.rand(1, 3), torch.rand(1, 3)
metrics_group_lv1.calc(output, target)
values.append(np.linalg.norm(output.numpy() - target.numpy()))
for metrics_group in [metrics_group_lv1, metrics_group_lv2]:
for m in metrics_group.metrics():
for v1, v2 in zip(values, m.get_values()):
self.assertAlmostEqual(v1, v2, delta=1e-5)
metrics_group_lv1.reset()
self.assertEqual(metrics_group_lv1.metrics()[0].get_values().size, 0)
self.assertEqual(metrics_group_lv2.metrics()[0].get_values().size, 0)
示例7: test_lr_decaying
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_lr_decaying(self):
fsm = FileStructManager(base_dir=self.base_dir, is_continue=False)
model = SimpleModel()
metrics_processor = MetricsProcessor()
stages = [TrainStage(TestDataProducer([[{'data': torch.rand(1, 3), 'target': torch.rand(1)}
for _ in list(range(20))]]), metrics_processor),
ValidationStage(TestDataProducer([[{'data': torch.rand(1, 3), 'target': torch.rand(1)}
for _ in list(range(20))]]), metrics_processor)]
trainer = Trainer(TrainConfig(model, stages, SimpleLoss(), torch.optim.SGD(model.parameters(), lr=0.1)),
fsm).set_epoch_num(10)
def target_value_clbk() -> float:
return 1
trainer.enable_lr_decaying(0.5, 3, target_value_clbk)
trainer.train()
self.assertAlmostEqual(trainer.data_processor().get_lr(), 0.1 * (0.5 ** 3), delta=1e-6)
示例8: test_savig_states
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_savig_states(self):
fsm = FileStructManager(base_dir=self.base_dir, is_continue=False)
model = SimpleModel()
metrics_processor = MetricsProcessor()
stages = [TrainStage(TestDataProducer([[{'data': torch.rand(1, 3), 'target': torch.rand(1)}
for _ in list(range(20))]]), metrics_processor)]
trainer = Trainer(TrainConfig(model, stages, SimpleLoss(), torch.optim.SGD(model.parameters(), lr=0.1)),
fsm).set_epoch_num(3)
checkpoint_file = os.path.join(self.base_dir, 'checkpoints', 'last', 'last_checkpoint.zip')
def on_epoch_end():
self.assertTrue(os.path.exists(checkpoint_file))
os.remove(checkpoint_file)
trainer.add_on_epoch_end_callback(on_epoch_end)
trainer.train()
示例9: relabel_batch
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def relabel_batch(rate, labels, T):
root = T['root']
parents = T['parents']
relabel_rate = rate / 100.
relabels = labels.clone()
relabel_me = (relabels != root)
while relabel_me.sum():
relabel_me &= (torch.rand(relabels.size(0)) < relabel_rate)
for i in relabel_me.nonzero().view(-1):
k = relabels[i]
if len(parents[k]) == 0:
relabel_me[i] = False
elif len(parents[k]) == 1:
relabels[i] = parents[k][0]
else:
relabels[i] = parents[k][int(torch.rand(1)*len(parents[k]))]
return relabels
示例10: vis_det_and_mask
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def vis_det_and_mask(im, class_name, dets, masks, thresh=0.8):
"""Visual debugging of detections."""
num_dets = np.minimum(10, dets.shape[0])
colors_mask = random_colors(num_dets)
colors_bbox = np.round(np.random.rand(num_dets, 3) * 255)
# sort rois according to the coordinates, draw upper bbox first
draw_mask = np.zeros(im.shape[:2], dtype=np.uint8)
for i in range(1):
bbox = tuple(int(np.round(x)) for x in dets[i, :4])
mask = masks[i, :, :]
full_mask = unmold_mask(mask, bbox, im.shape)
score = dets[i, -1]
if score > thresh:
word_width = len(class_name)
cv2.rectangle(im, bbox[0:2], bbox[2:4], colors_bbox[i], 2)
cv2.rectangle(im, bbox[0:2], (bbox[0] + 18 + word_width*8, bbox[1]+15), colors_bbox[i], thickness=cv2.FILLED)
apply_mask(im, full_mask, draw_mask, colors_mask[i], 0.5)
draw_mask += full_mask
cv2.putText(im, '%s' % (class_name), (bbox[0]+5, bbox[1] + 12), cv2.FONT_HERSHEY_PLAIN,
1.0, (255,255,255), thickness=1)
return im
示例11: test_griffinlim
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_griffinlim(self):
# NOTE: This test is flaky without a fixed random seed
# See https://github.com/pytorch/audio/issues/382
torch.random.manual_seed(42)
tensor = torch.rand((1, 1000))
n_fft = 400
ws = 400
hop = 100
window = torch.hann_window(ws)
normalize = False
momentum = 0.99
n_iter = 8
length = 1000
rand_init = False
init = 'random' if rand_init else None
specgram = F.spectrogram(tensor, 0, window, n_fft, hop, ws, 2, normalize).sqrt()
ta_out = F.griffinlim(specgram, window, n_fft, hop, ws, 1, normalize,
n_iter, momentum, length, rand_init)
lr_out = librosa.griffinlim(specgram.squeeze(0).numpy(), n_iter=n_iter, hop_length=hop,
momentum=momentum, init=init, length=length)
lr_out = torch.from_numpy(lr_out).unsqueeze(0)
self.assertEqual(ta_out, lr_out, atol=5e-5, rtol=1e-5)
示例12: test_amplitude_to_DB
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_amplitude_to_DB(self):
spec = torch.rand((6, 201))
amin = 1e-10
db_multiplier = 0.0
top_db = 80.0
# Power to DB
multiplier = 10.0
ta_out = F.amplitude_to_DB(spec, multiplier, amin, db_multiplier, top_db)
lr_out = librosa.core.power_to_db(spec.numpy())
lr_out = torch.from_numpy(lr_out)
self.assertEqual(ta_out, lr_out, atol=5e-5, rtol=1e-5)
# Amplitude to DB
multiplier = 20.0
ta_out = F.amplitude_to_DB(spec, multiplier, amin, db_multiplier, top_db)
lr_out = librosa.core.amplitude_to_db(spec.numpy())
lr_out = torch.from_numpy(lr_out)
self.assertEqual(ta_out, lr_out, atol=5e-5, rtol=1e-5)
示例13: test_griffinlim
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_griffinlim(self):
def func(tensor):
n_fft = 400
ws = 400
hop = 200
window = torch.hann_window(ws, device=tensor.device, dtype=tensor.dtype)
power = 2.
normalize = False
momentum = 0.99
n_iter = 32
length = 1000
rand_int = False
return F.griffinlim(tensor, window, n_fft, hop, ws, power, normalize, n_iter, momentum, length, rand_int)
tensor = torch.rand((1, 201, 6))
self._assert_consistency(func, tensor)
示例14: test_flanger
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_flanger(self):
torch.random.manual_seed(40)
waveform = torch.rand(2, 100) - 0.5
def func(tensor):
delay = 0.8
depth = 0.88
regen = 3.0
width = 0.23
speed = 1.3
phase = 60.
sample_rate = 44100
return F.flanger(tensor, sample_rate, delay, depth, regen, width, speed,
phase, modulation='sinusoidal', interpolation='linear')
self._assert_consistency(func, waveform)
示例15: test_waveform
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import rand [as 別名]
def test_waveform(self):
"""Validate the output dimensions of a _UpsampleNetwork block.
"""
upsample_scales = [5, 5, 8]
n_batch = 2
n_time = 200
n_freq = 100
n_output = 256
n_res_block = 10
n_hidden = 128
kernel_size = 5
total_scale = 1
for upsample_scale in upsample_scales:
total_scale *= upsample_scale
model = _UpsampleNetwork(upsample_scales, n_res_block, n_freq, n_hidden, n_output, kernel_size)
x = torch.rand(n_batch, n_freq, n_time)
out1, out2 = model(x)
assert out1.size() == (n_batch, n_freq, total_scale * (n_time - kernel_size + 1))
assert out2.size() == (n_batch, n_output, total_scale * (n_time - kernel_size + 1))