犬や猫のVGG16完全な分類を使用します

keras.applications.vgg16 インポートVGG16
 から keras.models インポートシーケンシャル
 から keras.layers インポートConv2D、MaxPool2D、活性化、ドロップアウト、平坦化は、高密度
 から keras.optimizers インポートSGD
 から keras.preprocessing.image インポートImageDataGenerator、img_to_array、load_imgの
 インポート numpyのNPとして
1 vgg16_model = VGG16(重み= ' imagenet '、include_top =偽、input_shape =(150,150,3))
1  搭建全连接层
2 top_model = シーケンシャル()
 3 top_model.add(平坦化(input_shape = vgg16_model.output_shape [1 :]))
 4 top_model.add(高密度(256、活性化= ' relu ' ))
 5 top_model.add (ドロップアウト(0.5 ))
 6 top_model.add(高密度(2、活性化= ' ソフトマックス' ))
 7  
8モデル= シーケンシャル()
 9  model.add(vgg16_model)
 10 model.add(top_model)
= train_datagen ImageDataGenerator(
    rotation_range = 40、     回転のランダム度 
    width_shift_range = 0.2、 ランダム水平並進 
    height_shift_range = 0.2、 ランダム垂直翻訳 
    再スケール= 1/255、         データ正規化 
    shear_range = 20であり、        ランダム剪断変換 
    zoom_range = 0.2、        ランダム増幅 
    horizo​​ntal_flip =真、   水平フリップ 
    fill_mode = ' 最も近い'#の充填モード

test_datagen = ImageDataGenerator(
    再スケール= 1/255、          #1 データの正規化
BATCH_SIZE = 32 生成训练数据 
train_generator = train_datagen.flow_from_directory(
     ' 画像/列車' 
    target_size =(150,150 )、
    BATCH_SIZE = BATCH_SIZE、 )
     测试数据 
test_generator = test_datagen.flow_from_directory(
     ' 画像/試験' 
    target_size =(150,150 ) 、
    BATCH_SIZE = BATCH_SIZE、 



train_generator.class_indices
{ '猫' 0 '犬':1}
1つの #はオプティマイザを定義し、トレーニングプロセスのコスト関数算出精度
2 model.compile(オプティマイザSGD =(= 1E-LR 4、運動量= 0.9)、損失= ' categorical_crossentropy '、メトリック= [ ' 精度' ])
 。3  
4 model.fit_generator(train_generator、steps_per_epoch = LEN(train_generator)、20 =エポック、validation_data = test_generator、validation_steps = LEN(test_generator))

h5pyインストールPIP 
model.saveを(' model_vgg16.h5 '

テスト

keras.models インポートload_modelの
 インポートNP AS numpyの

ラベル = np.array([ ' CAT '' ' ])
ロードモデル 
モデル= load_model(' model_vgg16.h5 ' 

#のインポートイメージ 
画像load_img =(画像/テスト/ CAT / cat.1003.jpg " 
画像

画像= image.resize((150150 ))
画像 = img_to_array(画像)
画像 =画像/ 255 
画像 = np.expand_dims(イメージ、0)
image.shape
(1、150、150、3)
印刷(ラベル[model.predict_classes(画像)]
['ネコ']
 

おすすめ

転載: www.cnblogs.com/liuwenhua/p/11569615.html