按照本指南设置简单的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)