首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用tf.reshape()?

如何使用tf.reshape()?
EN

Stack Overflow用户
提问于 2018-07-20 13:41:54
回答 2查看 11.8K关注 0票数 5
代码语言:javascript
复制
import tensorflow as tf    
import random    
import numpy as np    

x = tf.placeholder('float')   
x = tf.reshape(x, [-1,28,28,1])

with tf.Session() as sess:
    x1 = np.asarray([random.uniform(0,1) for i in range(784)])
    result = sess.run(x, feed_dict={x: x1})
    print(result)

我在使用mnist数据进行整形时遇到了一些问题,但是这个问题是我问题的简化版本.为什么这段代码不起作用?

它显示了

"ValueError:不能为具有形状'(?,28,28,1)‘的张量’整形:0‘提供形状值(784,)“。

我怎么能解决呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-20 13:46:51

重新分配之后,x是形状为[-1,28,28,1]的张量,正如错误所述,不能将(784,)形状为(?, 28, 28, 1)。您可以使用不同的变量名:

代码语言:javascript
复制
import tensorflow as tf
import random
import numpy as np

x = tf.placeholder('float')
y = tf.reshape(x, [-1,28,28,1])

with tf.Session() as sess:
    x1 = np.asarray([random.uniform(0,1) for i in range(784)])
    result = sess.run(y, feed_dict={x: x1})
    print(result)
票数 4
EN

Stack Overflow用户

发布于 2019-08-23 14:03:44

在概念上是错误的,因为当您使用sess.run(x, feed_dict{x:x1})时,这里会出现错误。这是为了补充和重塑相同的变量。这会在运行时造成问题。因此,您不能使用单个变量来完成这一任务。

代码语言:javascript
复制
import tensorflow as tf
import random
import numpy as np

x = tf.placeholder('float')
y = tf.reshape(x, [-1,28,28,1])

with tf.Session() as sess:
    x1 = np.asarray([random.uniform(0,1) for i in range(784)])
    result = sess.run(y, feed_dict={x: x1})
    print(result)

在tensorflow中,变量是位置持有者。因此,x将保存浮点值,另一个变量表示y将保存形状为[-1,28,28,1]的值。

如果使用相同的变量名,那么它必须充当两件事的占位符。这是不可能的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51443898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档