Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
tensorflow动态创建占位符_Tensorflow - Fatal编程技术网

tensorflow动态创建占位符

tensorflow动态创建占位符,tensorflow,Tensorflow,在每次迭代中,我想动态地提供我想要的占位符数量,然后将数据提供给它们。这有可能吗?怎么可能?我试图在epoch循环中创建整个模型(占位符、loss、优化器),但这给了未初始化的变量错误 目前,我在一个列表中有n=5个占位符,每个占位符shape=(1,k),我向它们提供数据。但是n需要在epoch循环内的数据馈送期间动态定义。可能您误解了张量是什么 如果你把张量想象成一个多维列表,你就可以理解,拥有一个动态编号的占位符和一个形状[1,k]是没有意义的 相反,你必须使用一个张量 因此,将输入占位符

在每次迭代中,我想动态地提供我想要的占位符数量,然后将数据提供给它们。这有可能吗?怎么可能?我试图在epoch循环中创建整个模型(占位符、loss、优化器),但这给了未初始化的变量错误


目前,我在一个列表中有n=5个占位符,每个占位符shape=(1,k),我向它们提供数据。但是n需要在epoch循环内的数据馈送期间动态定义。

可能您误解了张量是什么

如果你把张量想象成一个多维列表,你就可以理解,拥有一个动态编号的占位符和一个形状
[1,k]
是没有意义的

相反,你必须使用一个张量

因此,将输入占位符定义为一个带有shape
[None,1,k]
的张量

placeholder_ = tf.placeholder(tf.float32, [None, 1, k])
使用此语句,您可以定义一个带有
tf.float32
类型的占位符和一个带有形状
[1,k]
的未定义元素数(无
部分)

placeholder_ = tf.placeholder(tf.float32, [None, 1, k])
在每次迭代中,都必须为占位符提供正确的值。跑步

result = sess.run(defined_op, feed_dict={
    placeholder_: numpy_ndarray_with_N_elements_with_shape_1_k
})

这样,您就不需要在计算图中定义新的变量(这根本不起作用),而需要为它提供所需的值。

也许您误解了张量是什么

如果你把张量想象成一个多维列表,你就可以理解,拥有一个动态编号的占位符和一个形状
[1,k]
是没有意义的

相反,你必须使用一个张量

因此,将输入占位符定义为一个带有shape
[None,1,k]
的张量

placeholder_ = tf.placeholder(tf.float32, [None, 1, k])
使用此语句,您可以定义一个带有
tf.float32
类型的占位符和一个带有形状
[1,k]
的未定义元素数(无
部分)

placeholder_ = tf.placeholder(tf.float32, [None, 1, k])
在每次迭代中,都必须为占位符提供正确的值。跑步

result = sess.run(defined_op, feed_dict={
    placeholder_: numpy_ndarray_with_N_elements_with_shape_1_k
})


这样,你就不需要在计算图中定义新的变量(这根本不起作用),只需要给它输入所需的值。

难道你不能有一个形状为[None,k]的占位符,你可以随意调整第一个维度吗?@OlivierMoindrot这两个是同一件事吗?考虑用例:这5个占位符是带有DIME= K和5个时间步长的单词向量,并且我正在训练一个RNN。如果我考虑你的话,BPTT会工作吗?如果你的输入是一个未知长度的单词向量序列(大小<代码> k>代码>)(调用它<代码> n>代码>),占位符应该是形状<代码> [没有,k] < /代码>。如果是RNN,那么您的模型应该能够处理不同大小的输入。@OlivierMoindrot是的,我知道。但是BPTT在这种情况下有效吗?。我怎样才能在占位符中的N个向量上迭代呢?我不熟悉tensorflow模型,但可能会有帮助!你不能有一个[None,k]形状的占位符,你可以随意调整第一个维度吗?@OlivierMoindrot这两个东西是一样的吗?考虑用例:这5个占位符是带有DIME= K和5个时间步长的单词向量,并且我正在训练一个RNN。如果我考虑你的话,BPTT会工作吗?如果你的输入是一个未知长度的单词向量序列(大小<代码> k>代码>)(调用它<代码> n>代码>),占位符应该是形状<代码> [没有,k] < /代码>。如果是RNN,那么您的模型应该能够处理不同大小的输入。@OlivierMoindrot是的,我知道。但是BPTT在这种情况下有效吗?。我怎样才能在占位符中的N个向量上迭代呢?我不熟悉tensorflow模型,但可能会有帮助!当我有n[1,k]个占位符时,我可以在图中迭代它们。现在,我可以用单个[None,1,k]占位符做什么?所有内容?您可以在图中迭代,提取占位符的片段。提取的每个片段在逻辑上与单个占位符相同,没有第一个维度。酷。但是,在提取幻灯片时,我如何知道要提取多少张幻灯片,因为第一个维度被指定为“无”。您向占位符提供了一定数量的元素,这些元素的形状为[1,k]。因此,您知道该占位符中有多少个元素。在上瘾中,你可以提取张量的真实形状,从而知道有多少元素是以正方形式存在的。只需调用
\u placeholder.get\u shape()[0].value
即可获取占位符的第一个维度值(当占位符已输入时),然后在创建图形时需要该形状,因为首先我要创建一个shape[None,1,k]占位符,然后将从该占位符中的每一个shape[1,k]切片所有行。可能吗?当我有n[1,k]个占位符时,我可以在图中迭代它们。现在,我可以用单个[None,1,k]占位符做什么?所有内容?您可以在图中迭代,提取占位符的片段。提取的每个片段在逻辑上与单个占位符相同,没有第一个维度。酷。但是,在提取幻灯片时,我如何知道要提取多少张幻灯片,因为第一个维度被指定为“无”。您向占位符提供了一定数量的元素,这些元素的形状为[1,k]。因此,您知道该占位符中有多少个元素。在上瘾中,你可以提取张量的真实形状,从而知道有多少元素是以正方形式存在的。只需调用
\u placeholder.get\u shape()[0].value
即可获取占位符的第一个维度值(当占位符已输入时),然后在创建图形时需要该形状,因为首先我要创建一个shape[None,1,k]占位符,然后将从该占位符中的每一个shape[1,k]切片所有行。可能的