如何在占位符中为非确定性数组大小设置形状

hac*_*ist 8 tensorflow

我想训练一个不同数组大小的数据.例如,我们假设我们希望训练句子.第一句是"我是约翰",第二句是"我知道".如果句子转换成张量.第一件事将成为["我","上午","约翰"],接下来将成为["我","知道"].因此,第一个数组将需要3作为占位符形状的n_input.但是,第二个阵列需要2个.

x = tf.placeholder("float", [None, n_input])
y = tf.placeholder("float", [None, n_classes])
Run Code Online (Sandbox Code Playgroud)

我将需要上面的代码来定义占位符.但是,我无法确定n_input.

另外,没有形状是什么意思?BATCH_SIZE?请帮我.

Ste*_*ven 11

从技术上讲,占位符根本不需要形状.它可以这样定义.

x =tf.placeholder(tf.float32, shape=[])
Run Code Online (Sandbox Code Playgroud)

在这种情况下,占位符本身没有形状信息.如果您知道张量的尺寸但不知道它的实际数字形状,我们将该尺寸的数值替换为None,因为它可以具有可变的尺寸.

 x =tf.placeholder(tf.float32, shape=[None, None, None])
Run Code Online (Sandbox Code Playgroud)

这会影响一些下游静态形状分析,张量流可以获得形状信息,但除此之外它仍应按预期工作.