Tensorflow 2:嵌套TensorArray

亚历克斯

此代码有什么问题?编辑:它在CPU上工作,但是在GPU上运行时失败。它运行了几次迭代,然后由于以下错误之一而失败(github issue here):

2019-12-02 12:59:29.727966: F tensorflow/core/framework/tensor_shape.cc:445] Check failed: end <= dims() (1 vs. 0)

Process finished with exit code -1073740791 (0xC0000409)

要么

tensorflow.python.framework.errors_impl.InvalidArgumentError:  Tried to set a tensor with incompatible shape at a list index. Item element shape: [3,3] list shape: [3]
     [[{{node while/body/_1/TensorArrayV2Write/TensorListSetItem}}]] [Op:__inference_computeElement_73]

@tf.function
def computeElement_byBin():
    c = tf.TensorArray(tf.int64, size=1, infer_shape=False, element_shape=(3,))
    const = tf.cast(tf.constant([1, 2, 3]), tf.int64)
    c = c.write(0, const)
    c_c = c.concat()
    return c_c

@tf.function
def computeElement():
    c = tf.TensorArray(tf.int64, size=1, infer_shape=False, element_shape=(3,))
    for x in tf.range(50):
        byBinVariant = computeElement_byBin()
        c = c.write(0, byBinVariant)
    return c.concat()

k = 0
while True:
    k += 1
    r = computeElement()
    print('iteration: %s, result: %s' % (k, r))
亚历克斯

我玩了更多,然后缩小了一点:

@tf.function
def computeElement():
    tarr = tf.TensorArray(tf.int32, size=1,clear_after_read=False)
    tarr = tarr.write(0, [1])
    concat = tarr.concat()

    # PROBLEM HERE
    for x in tf.range(50):
        concat = tarr.concat()

    return concat

如果您设置tf.config.threading.set_inter_op_parallelism_threads(1)了此错误,则该错误将消失,这与展开的tensorflow循环的并行化有关。知道在循环python变量而不是张量时tensorflow会静态展开,我可以确认此代码有效:

@tf.function
def computeElement(arr):
    tarr = tf.TensorArray(tf.int32, size=1)
    tarr = tarr.write(0, [1])
    concat = tarr.concat()

    a = 0
    while a<arr:
        concat = tarr.concat()
        a+=1

    return concat

k = 0
while True:
    k += 1
    r = computeElement(50)

因此,目前的解决方案是遍历python变量而不是张量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Tensorflow中使用L2池?

来自分类Dev

Tensorflow seq2seq-答复的置信度

来自分类Dev

Tensorflow:tf.nn.separable_conv2d做什么?

来自分类Dev

如何堆叠Tensorflow的conv2d_transpose()的多层

来自分类Dev

Tensorflow seq2seq多维回归

来自分类Dev

Tensorflow 2 Keras嵌套模型子类化-总参数为零

来自分类Dev

在Tensorflow 2中导入WAV文件

来自分类Dev

在tensorflow 2中加载ModelCheckpoint

来自分类Dev

将Tensorflow 1.5转换为Tensorflow 2

来自分类Dev

在Tensorflow 2中找不到Tensorflow模块,在哪里可以找到新方法的文档?

来自分类Dev

将tensorflow 1.xx模型加载到tensorflow 2.xx中

来自分类Dev

在TensorFlow v1中隐式启用TensorFlow v2行为

来自分类Dev

使用@tffunction的Tensorflow2警告

来自分类Dev

TensorFlow中的嵌套结构是什么?

来自分类Dev

如何在TensorFlow 2.x中加载Tensorflow 1.x保存的模型?

来自分类Dev

Tensorflow 1和2语法差异

来自分类Dev

在Tensorflow中读取TensorArray总是返回零

来自分类Dev

TensorFlow py_function嵌套输出类型?

来自分类Dev

使用tensorflow 2实现梯度损失

来自分类Dev

tensorflow 2:使用隐藏层输出的损失

来自分类Dev

安装Tensorflow 2会导致dll无法在pywrap_tensorflow.py中加载

来自分类Dev

将Tensorflow 1.x代码升级到Tensorflow 2.x代码

来自分类Dev

警告在将Tensorflow 1代码升级到Tensorflow 2代码期间

来自分类Dev

Tensorflow2 LSTM(cuDNN args)与tensorflow1 CuDNNLSTM实现差异

来自分类Dev

使用CPU的“ Keras后端+ Tensorflow”和“来自Tensorflow的Keras”之间有什么区别(在Tensorflow 2.x中)

来自分类Dev

Tensorflow 2图像批量预测返回结果

来自分类Dev

TensorFlow2-模型子类化ValueError

来自分类Dev

TensorFlow:将GRUCell权重从compat.v1转换为tensorflow 2

来自分类Dev

嵌套模型时没有提供Keras Tensorflow的渐变

Related 相关文章

  1. 1

    如何在Tensorflow中使用L2池?

  2. 2

    Tensorflow seq2seq-答复的置信度

  3. 3

    Tensorflow:tf.nn.separable_conv2d做什么?

  4. 4

    如何堆叠Tensorflow的conv2d_transpose()的多层

  5. 5

    Tensorflow seq2seq多维回归

  6. 6

    Tensorflow 2 Keras嵌套模型子类化-总参数为零

  7. 7

    在Tensorflow 2中导入WAV文件

  8. 8

    在tensorflow 2中加载ModelCheckpoint

  9. 9

    将Tensorflow 1.5转换为Tensorflow 2

  10. 10

    在Tensorflow 2中找不到Tensorflow模块,在哪里可以找到新方法的文档?

  11. 11

    将tensorflow 1.xx模型加载到tensorflow 2.xx中

  12. 12

    在TensorFlow v1中隐式启用TensorFlow v2行为

  13. 13

    使用@tffunction的Tensorflow2警告

  14. 14

    TensorFlow中的嵌套结构是什么?

  15. 15

    如何在TensorFlow 2.x中加载Tensorflow 1.x保存的模型?

  16. 16

    Tensorflow 1和2语法差异

  17. 17

    在Tensorflow中读取TensorArray总是返回零

  18. 18

    TensorFlow py_function嵌套输出类型?

  19. 19

    使用tensorflow 2实现梯度损失

  20. 20

    tensorflow 2:使用隐藏层输出的损失

  21. 21

    安装Tensorflow 2会导致dll无法在pywrap_tensorflow.py中加载

  22. 22

    将Tensorflow 1.x代码升级到Tensorflow 2.x代码

  23. 23

    警告在将Tensorflow 1代码升级到Tensorflow 2代码期间

  24. 24

    Tensorflow2 LSTM(cuDNN args)与tensorflow1 CuDNNLSTM实现差异

  25. 25

    使用CPU的“ Keras后端+ Tensorflow”和“来自Tensorflow的Keras”之间有什么区别(在Tensorflow 2.x中)

  26. 26

    Tensorflow 2图像批量预测返回结果

  27. 27

    TensorFlow2-模型子类化ValueError

  28. 28

    TensorFlow:将GRUCell权重从compat.v1转换为tensorflow 2

  29. 29

    嵌套模型时没有提供Keras Tensorflow的渐变

热门标签

归档