cnn對貓狗分類
阿新 • • 發佈:2018-11-09
from keras.models import Sequential from keras.layers import Conv2D, MaxPool2D, Activation, Dropout, Flatten, Dense from keras.optimizers import Adam from keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img from keras.models import load_model import numpy as np # define model model = Sequential() model.add(Conv2D(input_shape=(150, 150, 3), filters=32, kernel_size=3, padding='same', activation='relu')) model.add(Conv2D(filters=32, kernel_size=3, padding='same', activation='relu')) model.add(MaxPool2D(pool_size=2, strides=2)) model.add(Conv2D(filters=64, kernel_size=3, padding='same', activation='relu')) model.add(Conv2D(filters=64, kernel_size=3, padding='same', activation='relu')) model.add(MaxPool2D(pool_size=2, strides=2)) model.add(Conv2D(filters=128, kernel_size=3, padding='same', activation='relu')) model.add(Conv2D(filters=128, kernel_size=3, padding='same', activation='relu')) model.add(MaxPool2D(pool_size=2, strides=2)) model.add(Flatten()) model.add(Dense(64, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(2, activation='softmax')) # define optimizer adam = Adam(lr=1e-4) # define optimizer, value function, calculate accuracy model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy']) train_datagen = ImageDataGenerator( rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, rescale=1/255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest' ) test_datagen = ImageDataGenerator( rescale=1/255 ) batch_size = 32 # create train data train_generator = train_datagen.flow_from_directory( 'train', target_size=(150, 150), batch_size=batch_size ) # create test data test_generator = test_datagen.flow_from_directory( 'test', target_size=(150, 150), batch_size=batch_size ) print train_generator.class_indices model.fit_generator(train_generator, epochs=30, validation_data=test_generator, steps_per_epoch=150/batch_size, validation_steps=1) model.save('model_cnn.h5') label = np.array(['cat', 'dog']) model = load_model('model_cnn.h5') image = load_img('test/cat/1.jpg') image = image.resize((150, 150)) image = img_to_array(image) image = image / 255 image = np.expand_dims(image, 0) print image.shape print label[model.predict_classes(image)]
Using TensorFlow backend. Found 400 images belonging to 2 classes. Found 200 images belonging to 2 classes. {'dog': 1, 'cat': 0} Epoch 1/30 2018-10-22 19:55:12.961810: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 1/4 [======>.......................] - ETA: 10s - loss: 9.0665 - acc: 0.4375 2/4 [==============>...............] - ETA: 5s - loss: 8.0591 - acc: 0.5000 3/4 [=====================>........] - ETA: 2s - loss: 8.8986 - acc: 0.4479 4/4 [==============================] - 11s 3s/step - loss: 8.4368 - acc: 0.4766 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 2/30 1/4 [======>.......................] - ETA: 6s - loss: 7.5554 - acc: 0.5312 2/4 [==============>...............] - ETA: 4s - loss: 7.8072 - acc: 0.5156 3/4 [=====================>........] - ETA: 2s - loss: 7.7233 - acc: 0.5208 4/4 [==============================] - 9s 2s/step - loss: 7.5554 - acc: 0.5312 - val_loss: 9.5701 - val_acc: 0.4062 Epoch 3/30 1/4 [======>.......................] - ETA: 6s - loss: 7.0517 - acc: 0.5625 2/4 [==============>...............] - ETA: 4s - loss: 8.3109 - acc: 0.4844 3/4 [=====================>........] - ETA: 2s - loss: 8.3948 - acc: 0.4792 4/4 [==============================] - 9s 2s/step - loss: 8.0590 - acc: 0.5000 - val_loss: 5.0369 - val_acc: 0.6875 Epoch 4/30 1/4 [======>.......................] - ETA: 5s - loss: 9.0664 - acc: 0.4375 2/4 [==============>...............] - ETA: 4s - loss: 7.3035 - acc: 0.5469 3/4 [=====================>........] - ETA: 2s - loss: 6.7159 - acc: 0.5833 4/4 [==============================] - 10s 2s/step - loss: 7.2531 - acc: 0.5500 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 5/30 1/4 [======>.......................] - ETA: 6s - loss: 9.0664 - acc: 0.4375 2/4 [==============>...............] - ETA: 4s - loss: 9.5701 - acc: 0.4062 3/4 [=====================>........] - ETA: 2s - loss: 8.8985 - acc: 0.4479 4/4 [==============================] - 10s 3s/step - loss: 8.4368 - acc: 0.4766 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 6/30 1/4 [======>.......................] - ETA: 7s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 4s - loss: 8.0590 - acc: 0.5000 3/4 [=====================>........] - ETA: 2s - loss: 7.7233 - acc: 0.5208 4/4 [==============================] - 11s 3s/step - loss: 8.1850 - acc: 0.4922 - val_loss: 9.5701 - val_acc: 0.4062 Epoch 7/30 1/4 [======>.......................] - ETA: 7s - loss: 9.0664 - acc: 0.4375 2/4 [==============>...............] - ETA: 3s - loss: 9.5701 - acc: 0.4062 3/4 [=====================>........] - ETA: 2s - loss: 9.7380 - acc: 0.3958 4/4 [==============================] - 9s 2s/step - loss: 9.6852 - acc: 0.3991 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 8/30 1/4 [======>.......................] - ETA: 6s - loss: 8.0590 - acc: 0.5000 2/4 [==============>...............] - ETA: 4s - loss: 8.3109 - acc: 0.4844 3/4 [=====================>........] - ETA: 2s - loss: 8.0590 - acc: 0.5000 4/4 [==============================] - 10s 2s/step - loss: 8.1850 - acc: 0.4922 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 9/30 1/4 [======>.......................] - ETA: 6s - loss: 8.0590 - acc: 0.5000 2/4 [==============>...............] - ETA: 4s - loss: 8.0590 - acc: 0.5000 3/4 [=====================>........] - ETA: 2s - loss: 7.8912 - acc: 0.5104 4/4 [==============================] - 10s 2s/step - loss: 7.5554 - acc: 0.5312 - val_loss: 7.5554 - val_acc: 0.5312 Epoch 10/30 1/4 [======>.......................] - ETA: 6s - loss: 9.0664 - acc: 0.4375 2/4 [==============>...............] - ETA: 4s - loss: 7.8072 - acc: 0.5156 3/4 [=====================>........] - ETA: 1s - loss: 6.8838 - acc: 0.5729 4/4 [==============================] - 9s 2s/step - loss: 6.9797 - acc: 0.5670 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 11/30 1/4 [======>.......................] - ETA: 8s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 5s - loss: 7.8072 - acc: 0.5156 3/4 [=====================>........] - ETA: 2s - loss: 7.3875 - acc: 0.5417 4/4 [==============================] - 11s 3s/step - loss: 7.1776 - acc: 0.5547 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 12/30 1/4 [======>.......................] - ETA: 7s - loss: 7.0517 - acc: 0.5625 2/4 [==============>...............] - ETA: 4s - loss: 8.8146 - acc: 0.4531 3/4 [=====================>........] - ETA: 2s - loss: 9.0664 - acc: 0.4375 4/4 [==============================] - 10s 3s/step - loss: 9.3183 - acc: 0.4219 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 13/30 1/4 [======>.......................] - ETA: 6s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 4s - loss: 8.0590 - acc: 0.5000 3/4 [=====================>........] - ETA: 2s - loss: 7.8912 - acc: 0.5104 4/4 [==============================] - 9s 2s/step - loss: 7.9295 - acc: 0.5080 - val_loss: 8.5627 - val_acc: 0.4688 Epoch 14/30 1/4 [======>.......................] - ETA: 6s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 4s - loss: 8.0590 - acc: 0.5000 3/4 [=====================>........] - ETA: 2s - loss: 7.8912 - acc: 0.5104 4/4 [==============================] - 10s 2s/step - loss: 7.8072 - acc: 0.5156 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 15/30 1/4 [======>.......................] - ETA: 6s - loss: 6.5480 - acc: 0.5938 2/4 [==============>...............] - ETA: 4s - loss: 7.3035 - acc: 0.5469 3/4 [=====================>........] - ETA: 2s - loss: 6.8838 - acc: 0.5729 4/4 [==============================] - 10s 3s/step - loss: 7.3035 - acc: 0.5469 - val_loss: 11.5849 - val_acc: 0.2812 Epoch 16/30 1/4 [======>.......................] - ETA: 6s - loss: 9.5701 - acc: 0.4062 2/4 [==============>...............] - ETA: 4s - loss: 9.0664 - acc: 0.4375 3/4 [=====================>........] - ETA: 2s - loss: 8.5627 - acc: 0.4688 4/4 [==============================] - 10s 3s/step - loss: 8.8146 - acc: 0.4531 - val_loss: 6.5480 - val_acc: 0.5938 Epoch 17/30 1/4 [======>.......................] - ETA: 3s - loss: 10.0738 - acc: 0.3750 2/4 [==============>...............] - ETA: 3s - loss: 10.0738 - acc: 0.3750 3/4 [=====================>........] - ETA: 1s - loss: 8.8985 - acc: 0.4479 4/4 [==============================] - 9s 2s/step - loss: 8.6491 - acc: 0.4634 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 18/30 1/4 [======>.......................] - ETA: 6s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 4s - loss: 7.5554 - acc: 0.5312 3/4 [=====================>........] - ETA: 2s - loss: 7.8912 - acc: 0.5104 4/4 [==============================] - 10s 3s/step - loss: 8.0590 - acc: 0.5000 - val_loss: 6.5480 - val_acc: 0.5938 Epoch 19/30 1/4 [======>.......................] - ETA: 6s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 4s - loss: 8.0590 - acc: 0.5000 3/4 [=====================>........] - ETA: 2s - loss: 7.5554 - acc: 0.5312 4/4 [==============================] - 10s 3s/step - loss: 7.8072 - acc: 0.5156 - val_loss: 8.5627 - val_acc: 0.4688 Epoch 20/30 1/4 [======>.......................] - ETA: 6s - loss: 8.0590 - acc: 0.5000 2/4 [==============>...............] - ETA: 3s - loss: 8.5627 - acc: 0.4688 3/4 [=====================>........] - ETA: 1s - loss: 9.0664 - acc: 0.4375 4/4 [==============================] - 9s 2s/step - loss: 9.1959 - acc: 0.4295 - val_loss: 7.5554 - val_acc: 0.5312 Epoch 21/30 1/4 [======>.......................] - ETA: 6s - loss: 6.5480 - acc: 0.5938 2/4 [==============>...............] - ETA: 4s - loss: 7.0517 - acc: 0.5625 3/4 [=====================>........] - ETA: 2s - loss: 7.5554 - acc: 0.5312 4/4 [==============================] - 10s 2s/step - loss: 7.1776 - acc: 0.5547 - val_loss: 6.0443 - val_acc: 0.6250 Epoch 22/30 1/4 [======>.......................] - ETA: 6s - loss: 10.0738 - acc: 0.3750 2/4 [==============>...............] - ETA: 4s - loss: 9.0664 - acc: 0.4375 3/4 [=====================>........] - ETA: 2s - loss: 8.3948 - acc: 0.4792 4/4 [==============================] - 10s 3s/step - loss: 8.0590 - acc: 0.5000 - val_loss: 9.5701 - val_acc: 0.4062 Epoch 23/30 1/4 [======>.......................] - ETA: 6s - loss: 6.5480 - acc: 0.5938 2/4 [==============>...............] - ETA: 4s - loss: 7.5554 - acc: 0.5312 3/4 [=====================>........] - ETA: 1s - loss: 8.3948 - acc: 0.4792 4/4 [==============================] - 9s 2s/step - loss: 8.3900 - acc: 0.4795 - val_loss: 8.5627 - val_acc: 0.4688 Epoch 24/30 1/4 [======>.......................] - ETA: 6s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 4s - loss: 7.8072 - acc: 0.5156 3/4 [=====================>........] - ETA: 2s - loss: 8.0590 - acc: 0.5000 4/4 [==============================] - 10s 3s/step - loss: 8.3109 - acc: 0.4844 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 25/30 1/4 [======>.......................] - ETA: 6s - loss: 7.5554 - acc: 0.5312 2/4 [==============>...............] - ETA: 4s - loss: 9.0664 - acc: 0.4375 3/4 [=====================>........] - ETA: 2s - loss: 8.8985 - acc: 0.4479 4/4 [==============================] - 10s 3s/step - loss: 9.0664 - acc: 0.4375 - val_loss: 6.0443 - val_acc: 0.6250 Epoch 26/30 1/4 [======>.......................] - ETA: 7s - loss: 6.0443 - acc: 0.6250 2/4 [==============>...............] - ETA: 4s - loss: 7.3035 - acc: 0.5469 3/4 [=====================>........] - ETA: 2s - loss: 6.0443 - acc: 0.6250 4/4 [==============================] - 9s 2s/step - loss: 6.7351 - acc: 0.5821 - val_loss: 7.5554 - val_acc: 0.5312 Epoch 27/30 1/4 [======>.......................] - ETA: 6s - loss: 8.5627 - acc: 0.4688 2/4 [==============>...............] - ETA: 4s - loss: 9.0664 - acc: 0.4375 3/4 [=====================>........] - ETA: 2s - loss: 8.5627 - acc: 0.4688 4/4 [==============================] - 10s 3s/step - loss: 8.1850 - acc: 0.4922 - val_loss: 9.0664 - val_acc: 0.4375 Epoch 28/30 1/4 [======>.......................] - ETA: 7s - loss: 10.5775 - acc: 0.3438 2/4 [==============>...............] - ETA: 4s - loss: 9.3183 - acc: 0.4219 3/4 [=====================>........] - ETA: 2s - loss: 8.8985 - acc: 0.4479 4/4 [==============================] - 10s 2s/step - loss: 8.4368 - acc: 0.4766 - val_loss: 6.0443 - val_acc: 0.6250 Epoch 29/30 1/4 [======>.......................] - ETA: 6s - loss: 7.0517 - acc: 0.5625 2/4 [==============>...............] - ETA: 4s - loss: 7.5554 - acc: 0.5312 3/4 [=====================>........] - ETA: 2s - loss: 7.5554 - acc: 0.5312 4/4 [==============================] - 10s 3s/step - loss: 8.0590 - acc: 0.5000 - val_loss: 8.0590 - val_acc: 0.5000 Epoch 30/30 1/4 [======>.......................] - ETA: 3s - loss: 4.0295 - acc: 0.7500 2/4 [==============>...............] - ETA: 3s - loss: 5.7924 - acc: 0.6406 3/4 [=====================>........] - ETA: 1s - loss: 6.8838 - acc: 0.5729 4/4 [==============================] - 9s 2s/step - loss: 7.1380 - acc: 0.5571 - val_loss: 8.0590 - val_acc: 0.5000 (1, 150, 150, 3) ['cat']
貓狗資源下載
https://github.com/hongrui16/myTensorFlowTutorials/tree/master/%E7%8C%AB%E7%8B%97%E8%AF%86%E5%88%AB