Java教程

2021-07-09

本文主要是介绍2021-07-09,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

7.9学习记录
今天走了一遍训练流程,中途遇到了各种bug,比如tensorflow和keras的版本不兼容的问题,最终安装了tensorflow1.14和keras2.2.5本,成功运行。

训练的是口罩识别系统

这是搭建的卷积神经网络

def build_model(inputshape,shape_count):
    img_in = Input(shape=inputshape, name='img_in')
    X = img_in

    X = Convolution2D(8, 3, padding='same', activation='relu', name='conv1')(X)
    X = MaxPooling2D(pool_size=2, strides=2, padding='same', name='maxpool1')(X)

    X = Convolution2D(16, 3, padding='same', activation='relu', name='conv2')(X)
    X = MaxPooling2D(pool_size=2, strides=2, padding='same', name='maxpool2')(X)
    X_SHORT = X

    X = Convolution2D(16, 3, padding='same', activation='relu', name='conv3')(X)
    X = layers.add([X, X_SHORT])

    X = Convolution2D(32, 3, padding='same', activation='relu', name='conv4')(X)
    X = MaxPooling2D(pool_size=2, strides=2, padding='same', name='maxpool3')(X)

    X = Convolution2D(64, 3, padding='same', activation='relu', name='conv5')(X)
    X = MaxPooling2D(pool_size=2, strides=2, padding='same', name='maxpool4')(X)

    X = Flatten(name='flattened')(X)
    X = Dense(128, activation='relu', name='dense1')(X)
    #Dense:定义网络层的基本方法
    X = Dense(128, activation='relu', name='dense2')(X)
    X = Dropout(0.25)(X)
    classify = Dense(shape_count, activation='softmax', name='dense3')(X)

    model = Model(inputs=[img_in], outputs=[classify])

    return model

主函数

if __name__ == '__main__':
    model = build_model((64, 64, 3),2)
    adam = Adam(lr=0.0005)
    model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy'])

    datagen = ImageDataGenerator(
        rescale=1./255,
        rotation_range=10,
        width_shift_range=0.2,
        height_shift_range=0.2,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True,
        brightness_range = (0.4,1.4),
        fill_mode='nearest')

    datagen_vail = ImageDataGenerator(rescale=1./255)
    gener=datagen.flow_from_directory('.\kzdataset',#类别子文件夹的上一级文件夹
                                         batch_size=40,
                                         target_size = (64,64),
                                         shuffle=True)

    gener_vail = datagen_vail.flow_from_directory('.\kzdataset',#类别子文件夹的上一级文件夹
                                         batch_size=200,
                                         target_size = (64,64),
                                         shuffle=True)
    model.fit_generator(gener,steps_per_epoch=100,epochs=80, verbose=1,validation_data=gener_vail)
    model.save("cell.h5")

    print("训练完毕")

开始运行…
在这里插入图片描述
放着慢慢跑吧
玩了一会儿游戏…它还在跑
吃了个饭…它还在跑…
睡了会儿觉…它跑完了。

在这里插入图片描述

我舍友说,就在我醒的前几分钟跑完的…
那么我六点多开始跑的,跑到了十点多…WTF

辛苦我的cpu了,果然cpu的效率贼低,还是用cuda效率高,几分钟就跑完了,可惜我的电脑显卡不支持(掀桌)。

总结
第一次体验训练人工智能的过程,心里有了个底。不过代码是老师给的,之后的任务就是研究研究这段python代码。老师说通过简单的修改,不光能成为口罩识别,还能进行眼镜识别。继续学习ing…

这篇关于2021-07-09的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!