如何优化我的 Tensorflow 代码(张量迭代)?

时间:2021-07-09 23:28:31

标签: python tensorflow optimization

我编写了一些代码来迭代张量的形状,并在每一步中为张量添加一个值。问题是大量迭代很慢(我需要很多):

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())

在每次迭代中,我向张量添加一个随机数(从正态分布中抽取)

  • num_samples 由用户指定,范围为 1000-100.000
  • numTimeSpes 是 80

有没有办法优化这个?

1 个答案:

答案 0 :(得分:0)

TF 应该很少依赖循环或 numpy。如果您看到其中任何一个,请尝试对其进行矢量化并使用本机 tf ops 进行操作。

也许类似

estr = estr + tf.random.normal(shape=estr.shape)

请注意,tf.random 很快就会因为不够随机而被弃用 - 请参阅文档中的注释。首选方法是 tf.random.generator。