将图像数据输入到tensorflow占位符

时间:2019-03-29 11:39:58

标签: python numpy tensorflow

我正在使用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)' ,但我想坚持使用它而不是尝试解决它。​​

问题

如何重塑训练数据以匹配预期的占位符维度?

1 个答案:

答案 0 :(得分:0)

numpy:

您可以使用create l_date_time.make_from_string ("2019-03-28T15:28:02Z", "yyyy-mm-ddThh:mi:ssZ") np.newaxisnp.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.newaxistf.expand_dims添加尺寸。

tf.reshape