首页 > 解决方案 > 运行模型。多次评估结果不同的精度和损失值 tensorflow 2

问题描述

我已经训练了一个dataset = tf.data.Dataset.from_tensor_slices((data, label))用于创建数据集的 CNN 网络。训练进行得很顺利,但是在测试数据集上评估模型每次都会产生不同的值,而不会更改测试数据集或网络中的任何内容,而且我没有使用任何DropoutBatchnormalization

如有必要,我的代码:

 model = tf.keras.Sequential([
    Input((1,30,30)),
    Conv2D(filters = 8, kernel_size=(3,3), padding="same", activation="relu", name="c1", data_format="channels_first"),
    Conv2D(filters = 16, kernel_size=(3,3), padding="same", activation="relu", name="c2", data_format="channels_first"),
    MaxPool2D(pool_size=(2,2), strides=(1,1),padding="same", name="m1", data_format="channels_first"),

    Conv2D(filters = 16, kernel_size=(3,3), padding="same", activation="relu", name="c3", data_format="channels_first"),
    MaxPool2D(pool_size=(2,2), strides=(1,1),padding="same", name="m2",data_format="channels_first"),

    Flatten(),
    Dense(256, activation="relu", use_bias=True),
    Dense(5,  use_bias=True)])

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=["accuracy"])
model.fit(train_data, verbose=1, validation_data=valid_data, epochs=20)


model.evaluate(test_data)

标签: conv-neural-networkdata-sciencetensorflow2.0

解决方案


推荐阅读