我正在使用keras.datasets.fashion_mnist
数据集,其中包含28 x 28灰度图像。我建立了一个非常简单的卷积神经网络,该网络接受定义为的图像占位符:
X = tf.placeholder(tf.float32, [None, 28, 28, INPUT_CHANNELS], name='X_placeholder')
我从形状为<type 'numpy.ndarray'>
的{{1}}开始。这里的100代表我选择训练的批次大小。
很显然,这里的维数不是对齐的。我构建的图形也应适用于RGB图像,因此也适用于INPUT_CHANNEL尺寸。不出所料,当我尝试训练时,出现以下错误:
(100, 28, 28)
对于TF和numpy来说相对较新,我看不到如何添加额外的维度。从各种来源整理我的代码后,我不能说我选择了占位符输入形状ValueError: Cannot feed value of shape (100, 28, 28) for Tensor u'X_placeholder:0', which has shape '(?, 28, 28, 1)'
,但我想坚持使用它而不是尝试解决它。
如何重塑训练数据以匹配预期的占位符维度?
答案 0 :(得分:0)
numpy:
您可以使用create l_date_time.make_from_string ("2019-03-28T15:28:02Z", "yyyy-mm-ddThh:mi:ssZ")
,np.newaxis
和np.expand_dims
添加尺寸。
reshape()
在张量流中:
您可以使用import numpy as np
train_data = np.random.normal(size=(100,28,28))
print(train_data.shape)
new_a = train_data[...,np.newaxis]
print(new_a.shape)
new_a = np.expand_dims(train_data,axis=-1)
print(new_a.shape)
new_a = train_data.reshape(100,28,28,1)
print(new_a.shape)
(100, 28, 28)
(100, 28, 28, 1)
(100, 28, 28, 1)
(100, 28, 28, 1)
,tf.newaxis
和tf.expand_dims
添加尺寸。
tf.reshape