【发布时间】:2020-08-20 08:17:38
【问题描述】:
我正在尝试使用 keras 来训练一个简单的前馈网络。我尝试了两种我认为是同一个网络的不同方法,但其中一种表现要好得多。第一个和表现更好的一个如下:
inputs = keras.Input(shape=(384,))
dense = layers.Dense(64, activation="relu")
x = dense(inputs)
x = layers.Dense(64, activation="relu")(x)
outputs = layers.Dense(384)(x)
model = keras.Model(inputs=inputs, outputs=outputs, name="simple_model")
model.compile(loss='mse',optimizer='Adam')
history = model.fit(X_train,
y_train_tf,
epochs=20,
validation_data=(X_test, y_test),
steps_per_epoch=100,
validation_steps=50)
它的验证损失约为 0.2。第二个模型的表现要差得多:
model = keras.models.Sequential()
model.add(Dense(64, input_shape=(384,), activation='relu'))
model.add(Dense(64, activation='relu'))
model.add(Dense(384, activation='relu'))
optimizer = tf.keras.optimizers.Adam()
model.compile(loss='mse', optimizer=optimizer)
history = model.fit(X_train,
y_train_tf,
epochs=20,
validation_data=(X_test, y_test),
steps_per_epoch=100,
validation_steps=50)
这有大约 5 的验证损失。但是当我执行 model.summary 时,它们看起来几乎相同。第二个模型有问题吗?
【问题讨论】:
标签: python tensorflow keras