資源簡介
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
評論
共有 條評論