【发布时间】:2020-06-24 00:08:25
【问题描述】:
# Importing the required Keras modules containing model and layers
from keras.models import Sequential
from keras.layers import Dense, Conv2D, Dropout, Flatten, MaxPooling2D,Conv2DTranspose
from keras.utils.vis_utils import plot_model
# Creating a Sequential Model and adding the layers
model = Sequential()
#63 kernels - Conv of 3X3
model.add(Conv2D(63, kernel_size=(3,3), input_shape=input_shape))
#Then pooling of 2X2
model.add(MaxPooling2D(pool_size=(2, 2)))
# Flattening the 2D arrays for fully connected layers
model.add(Flatten())
model.add(Dense(1000, activation=tf.nn.relu))
model.add(Dropout(0.2)) #Combat Overfitting, drop random elements
#Softmax layer must have neurons = range of labels, 0-9 for this case
model.add(Dense(10,activation=tf.nn.softmax))
#Visualize Network Architecture
plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True)
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(x=x_train,y=y_train,batch_size=batch_size,
epochs=30,
verbose=verbosity,
validation_split=validation_split)
正如您在上面看到的,我们有损失函数 ='sparse_categorical_crossentropy',但模型运行 30 个 epoch,为每个 epoch 生成训练和验证损失。在这种情况下,我们有一个 10 类,在最后一个密集层中说明。
*****我的问题是我们如何根据所有 30 个时期的 sparse_categorical_crossentropy 而不是每个时期的单个损失来计算 30 个时期的总损失。
【问题讨论】:
-
我添加了另一个使用顺序 api 的示例,也许这对你来说更容易