小编jaq*_*qqz的帖子

从NP数组转换后,Keras(tensorflow 2.0)中的Tensorflow数据集数据的形状错误

按照本指南设置简单的tensorflow 2.0测试时,输入到keras输入层的输入是错误的,但仅在转换为数据集之后(假装具有正确的形状)。

当然可以从文档中运行colab笔记本,但是我无法弄清楚设置可能出了什么问题。任何提示表示赞赏!

在jupyter实验室中设置一些假数据:

data = np.random.random((1000, 32,))
labels = np.random.random((1000, 10,))

dataset = tf.data.Dataset.from_tensor_slices((data, labels))
dataset.shuffle(buffer_size=1024).batch(32)

>> <BatchDataset shapes: ((None, 32), (None, 10)), types: (tf.float64, tf.float64)>
Run Code Online (Sandbox Code Playgroud)

使用功能性keras API构建简化的模型(顺序没有区别):

inputs = keras.Input(shape=(32,))
hidden = keras.layers.Dense(64, activation='relu')(inputs)
hidden = keras.layers.Dense(64, activation='relu')(hidden)
output = keras.layers.Dense(10, activation='softmax')(hidden)

model = keras.Model(inputs=inputs, outputs=output)
model.compile(loss='mse',
              optimizer=keras.optimizers.Adam(0.001),
              metrics=['mae'])
Run Code Online (Sandbox Code Playgroud)

在numpy数组上运行模型拟合工作符合预期:

model.fit(data, labels, epochs=10, batch_size=32)

>> Epoch 1/10
>> 1000/1000 [==============================] - 0s 124us/sample - loss: 0.2472 - mae: 0.4143
[...]
>> Epoch 10/10
>> 1000/1000 [==============================] …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-datasets tensorflow2.0

3
推荐指数
1
解决办法
438
查看次数