我编写了一些代码来迭代张量的形状,并在每一步中为张量添加一个值。问题是大量迭代很慢(我需要很多):
for i in range(0, num_samples):
for j in range(0, int(numTimeSteps.numpy())):
random_num = tf.squeeze(tf.random.normal([1], mean, std_dev, dtype=dtype))
tensor[i,j].assign(tf.math.add(random_num, estr[i,j]).numpy())
在每次迭代中,我向张量添加一个随机数(从正态分布中抽取)
有没有办法优化这个?
答案 0 :(得分:0)
TF 应该很少依赖循环或 numpy。如果您看到其中任何一个,请尝试对其进行矢量化并使用本机 tf ops 进行操作。
也许类似
estr = estr + tf.random.normal(shape=estr.shape)
请注意,tf.random 很快就会因为不够随机而被弃用 - 请参阅文档中的注释。首选方法是 tf.random.generator。