Python Tensorflow:长度可变的OneHot编码
我需要用TensorFlow对一些位置进行编码 但是,输入序列的长度(因此Python Tensorflow:长度可变的OneHot编码,python,tensorflow,machine-learning,one-hot-encoding,Python,Tensorflow,Machine Learning,One Hot Encoding,我需要用TensorFlow对一些位置进行编码 但是,输入序列的长度(因此tf.one_hot中的depth参数)是零,因为我使用的是可变大小的输入 这会引发以下错误: ValueError:尝试将“深度”转换为张量,但失败。错误:不支持任何值。“” 有解决办法吗 对于给定的序列,我已经尝试在每次调用之前(通过一个具有任意初始化值的变量)将深度设置为正确的序列长度,但是由于已经构建了计算图,更改没有生效,深度停留在初始化值。我就是这样解决问题的:问题是我使用了其他人的代码,tf中的depth参数
tf.one_hot
中的depth参数)是零,因为我使用的是可变大小的输入
这会引发以下错误:
ValueError:尝试将“深度”转换为张量,但失败。错误:不支持任何值。“”
有解决办法吗
对于给定的序列,我已经尝试在每次调用之前(通过一个具有任意初始化值的变量)将深度设置为正确的序列长度,但是由于已经构建了计算图,更改没有生效,深度停留在初始化值。我就是这样解决问题的:问题是我使用了其他人的代码,tf中的depth
参数。one_hot
来自someTensor.get_shape().as_list()[1]
。这里的问题是,如果someTensor
的形状未知,则该参数是Python-None
,它不是tf.one\hot
的有效参数。但是,使用tf.shape(someTensor)[1]
解决了这个问题,因为它返回一个具有未知形状的维度,而不是Python-None
。形状未知的维度是tf.one\u hot
的有效depth
-参数