资源简介

1、基于tensorflow作为后台框架 2、使用keras作为前端 3、使用google inceptionV3作为训练模型 4、训练结果保存为h5 5、使用opencv for python拉流摄像头识别火焰

资源截图

代码片段和文件信息

# 以下三行禁用GPU使用CPU进行训练
# import os
# os.environ[“CUDA_DEVICE_ORDER“] = “PCI_BUS_ID“  
# os.environ[“CUDA_VISIBLE_DEVICES“] = “-1“

from tensorflow import keras
from keras.applications.inception_v3 import InceptionV3
import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from keras import models
from keras import layers
import os
from keras import optimizers
from keras.utils import to_categorical
import matplotlib.pyplot as plt
from keras.preprocessing.image import ImageDataGenerator
from keras.applications.inception_v3 import InceptionV3preprocess_input
from keras.layers import GlobalAveragePooling2DDenseDropout
from keras.models import Model
from keras.utils.vis_utils import plot_model
from keras.optimizers import Adagrad
# 回调函数,每个训练批次调用一次
from keras.callbacks import ModelCheckpoint


# 动物数据预处理
imgdata_dir = ‘E:/fireimages/sources1‘

# 不使用数据增强
img_datagen = ImageDataGenerator(rescale=1./255)

mbatch_size = 20

# 使用数据增强
# train_datagen = ImageDataGenerator(rescale=1./255 rotation_range=30. width_shift_range=0.2 height_shift_range=0.2 shear_range=0.2 zoom_range=0.2 horizontal_flip=True)
# val_datagen = ImageDataGenerator(rescale=1./255 rotation_range=30. width_shift_range=0.2 height_shift_range=0.2 shear_range=0.2 zoom_range=0.2 horizontal_flip=True)

# 使用迭代器生成图片张量
img_generator = img_datagen.flow_from_directory(imgdata_dir target_size=(320 320) batch_size=mbatch_size class_mode=‘binary‘)
# 获取照片数量
img_count = img_generator.n
# print(img_generator.n)
# print(len(img_generator.labels))
print(img_count / 5)
img_cut = int(img_count / 5)
print(img_cut)
# 提取数据,因为构造器生成的数据标签是一维向量我们要分类10种不同的类型,所以需要将数据提取出来,并将标签one-hot
labels = []
datas = np.zeros((img_count 320 320 3))

for i in range(len(img_generator)):
    aa = img_generator.next()
    labels = np.hstack((labels aa[1]))
    for j in range(len(aa[1])):
        datas[mbatch_size * i + j] = aa[0][j]

train_datas = datas[img_cut:]
train_labels = labels[img_cut:]

val_datas = datas[:img_cut]
val_labels = labels[:img_cut]

# print(resnet_base.summary())
# model = models.Sequential()


‘‘‘
resnet_base.trainable = False
flag = False
for layer in resnet_base.layers:
    if layer.name == ‘res5c_branch2a‘:
        flag = True
    if flag:
        layer.trainable = True
‘‘‘
‘‘‘
setup_to_transfer_learning(modelbase_model)
history_tl = model.fit(train_data train_labels epochs=10 validation_data=(val_data val_labels))
model.save(‘E:/KaggleDatas/idenprof-jpg/idenprof/flowers17_iv3_tl.h5‘)
setup_to_fine_tune(modelbase_model)
history_ft = model.fit(train_data train_labels epochs=10 validation_data=(val_data val_labels))
model.save(‘E:/KaggleDatas/idenprof-jpg/idenprof/flowers17_iv3_ft.h5‘)
‘‘‘
‘‘‘
setup_to_transfer_learning(modelbase_model)
history_tl = model.fit_generator(generator=train_generator
                    epochs=5
                    validation_data=val_generator
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    I.A....      3164  2020-07-05 21:32  firefinder-ocv-auto.py

    I.A....      5979  2020-07-05 09:55  firefinder-inceptionV3-1.py

----------- ---------  ---------- -----  ----

                 9143                    2


评论

共有 条评论