首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对于相同的keras模型,我得到了不同的结果

对于相同的keras模型,我得到了不同的结果
EN

Stack Overflow用户
提问于 2019-06-02 22:59:31
回答 1查看 44关注 0票数 0

我用imagenet-weights训练了一个VGG16,用4个类对图像进行分类。

训练数据:4类3578幅图像。验证数据:4类894张图片

每次运行代码时,我都会得到这两个精确值中的一个。val_acc:第一次运行时为1.0000。val_acc:第二次运行时为0.3364。

对此有什么解释吗?因为结果之间的差异太大了。

    train_dir = 'C:/Users/ucduq/Desktop/output1/train'
    validation_dir = 'C:/Users/ucduq/Desktop/output1/val'

        training_data_generator = ImageDataGenerator(
            rescale=1./255,
        #rotation_range=90,
        #horizontal_flip=True,
       # vertical_flip=True,
        #shear_range=0.9
        #zoom_range=0.9

        )

    validation_data_generator = ImageDataGenerator(rescale=1./255)

        IMAGE_WIDTH=150
        IMAGE_HEIGHT=150
    BATCH_SIZE=32
    input_shape=(150,150,3)

    training_generator = training_data_generator.flow_from_directory(
        train_dir,
        target_size=(IMAGE_WIDTH, IMAGE_HEIGHT),
        batch_size=BATCH_SIZE,
        class_mode="categorical")
    validation_generator = validation_data_generator.flow_from_directory(
        validation_dir,
        target_size=(IMAGE_WIDTH, IMAGE_HEIGHT),
        batch_size=BATCH_SIZE,
        class_mode="categorical",
        shuffle=False)


    from keras.applications import VGG16

    vgg_conv = VGG16(weights='imagenet',
                      include_top=False,
                      input_shape=(150, 150, 3))


    model = models.Sequential()


    model.add(vgg_conv)

    ### Add new layers
    model.add(layers.Flatten())
    model.add(layers.Dense(1024, activation='relu'))
    model.add(layers.Dropout(0.5))
    model.add(layers.Dense(4, activation='softmax'))

model.compile(loss="categorical_crossentropy",optimizer='adam',metrics=["accuracy"])

results = model.fit_generator(training_generator, steps_per_epoch=training_generator.samples/training_generator.batch_size, 
                                  epochs=100,
                                  callbacks=callbacks,
                                  validation_data=validation_generator, validation_steps=28)

    first run:

    Epoch 100/100

    111/110 [==============================] - 17s 152ms/step - loss: 1.3593 - acc: 0.3365 - val_loss: 1.3599 - val_acc: 0.3364


    second run:

    Epoch 100/100

    111/110 [==============================] - 18s 158ms/step - loss: 1.9879e-06 - acc: 1.0000 - val_loss: 5.2915e-06 - val_acc: 1.0000
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56416190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档