InvalidArgumentError:必须使用dtype float和shape[?,13392560,1]

2024-10-02 10:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我是tensorflow的新手,使用keras时出现以下错误:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,1339,2560,1]

因为在我的模型中:

^{pr2}$

裁剪后,输入大小为[?,1339,2560,1],输出大小为[?,1328,2560,1],因此我想在numpy中使用pad来弥补这一差异:

sess=tf.Session()   
sess.run(tf.initialize_all_variables())  
conv12_ar = conv12.eval(session=sess)   
conv13_tem = np.pad(conv12_ar, ((0, 0),(5, 6), (0, 0), (0, 0)), 'edge')  
conv13 = tf.convert_to_tensor(conv13_tem)  

我得到了上面的错误,有人能帮我吗?或者指出另一种弥补差异的方法


Tags: fortftensorflow错误差异kerassessar
1条回答
网友
1楼 · 发布于 2024-10-02 10:21:20

我怀疑您试图将tensorflow视为一种过程性语言,而不是声明性语言。如果在创建会话之后有tensorflow语句,那么它几乎总是一个bug,并且是最常见的错误之一。但是,您还没有发布足够的代码来确定问题的确切位置。在

似乎您正在使用numpy进行填充,因此填充操作的结果应该传递到一个sess.run调用中,您不需要会话来执行任何操作。在

另外,您可以简单地将填充步骤添加到tensorflow图中,因此以形状[?, 1328, 2560, 1]形式输入,然后在tf.placeholder的定义之后使用tf.pad来填充它。然后确保占位符期望的是较小的形式,一切都应该正常。在

我总是建议您创建一个build_graph()函数,您可以在其中放置所有的张量和OP定义。您不应该在打开会话后创建任何tensorflow构造。将tensorflow看作有两个阶段:(1)构建一个要使用的操作的图形,然后(2)将数据传递到图形(占位符)中,并要求计算各种值(sess.run)。在

相关问题 更多 >

    热门问题