【问题标题】:Tensorflow: OneHot-encoding with variable sized lengthTensorflow:一种可变大小长度的热编码
【发布时间】:2019-09-23 17:28:54
【问题描述】:

我需要使用 TensorFlow 对一些位置进行 onehot-encode。

但是,输入序列的长度(以及 tf.one_hot 中的 depth-argument)为 None,因为我使用可变大小的输入。

这会引发以下错误:

“ValueError:试图将 'depth' 转换为张量并失败。错误:不支持任何值。”。

有解决办法吗?

我已经尝试在给定序列的每个单独调用之前(通过具有一些任意初始化值的变量)将深度设置为正确的序列长度,但是由于计算图已经构建,因此不会发生更改效果,深度卡在初始化值。

【问题讨论】:

    标签: python tensorflow machine-learning one-hot-encoding


    【解决方案1】:

    这就是我解决问题的方法:问题是我使用了别人的代码,而tf.one_hot 中的depth 参数源自someTensor.get_shape().as_list()[1]。这里的问题是,如果 someTensor 的形状未知,则参数是 Python-None,它不是 tf.one_hot 的有效参数。然而,使用tf.shape(someTensor)[1] 解决了这个问题,因为它返回了一个形状未知的维度,而不是 Python-None。形状未知的维度是 depth 的有效参数,tf.one_hot

    【讨论】:

      猜你喜欢
      • 2016-03-19
      • 2021-12-01
      • 2017-07-12
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 2021-01-16
      相关资源
      最近更新 更多