如何使用 tf.reshape()?
How do I use tf.reshape()?
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: Cannot feed value of shape (784,) for Tensor 'Reshape:0', which has shape '(?, 28, 28, 1)' ".
我该如何解决?
重新分配后,x 是形状为 [-1,28,28,1]
的张量,并且如错误所述,您不能将 (784,)
形状调整为 (?, 28, 28, 1)
。您可以使用不同的变量名称:
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)
概念上
你在这里得到错误是因为当你使用 sess.run(x, feed_dict{x:x1})
时。这是试图提供和重塑相同的变量。这会在 运行 时间内产生问题。因此,您不能使用单个变量来执行此操作。
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]
.
形状的值
如果使用相同的变量名,那么它必须充当两件事的占位符。这是不可能的。
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: Cannot feed value of shape (784,) for Tensor 'Reshape:0', which has shape '(?, 28, 28, 1)' ".
我该如何解决?
重新分配后,x 是形状为 [-1,28,28,1]
的张量,并且如错误所述,您不能将 (784,)
形状调整为 (?, 28, 28, 1)
。您可以使用不同的变量名称:
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)
概念上
你在这里得到错误是因为当你使用 sess.run(x, feed_dict{x:x1})
时。这是试图提供和重塑相同的变量。这会在 运行 时间内产生问题。因此,您不能使用单个变量来执行此操作。
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]
.
如果使用相同的变量名,那么它必须充当两件事的占位符。这是不可能的。