猫狗大战
即使用keras库训练模型,然后识别猫狗图片/照片
keras简介
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。
Keras 兼容的 Python 版本: Python 2.7-3.6。
一定要下载兼容的版本
Python中安装keras库
-
先前准备
在安装Keras之前,请安装以下后端之一:TensorFlow,Theano,或者 CNTK。推荐使用TensorFlow后端。 -
安装TensorFlow
bash pip install --upgrade --ignore-installed tensorflow
下载的很慢,耐心等待 -
安装keras
bash pip install keras
-
验证安装
keras实战-猫狗大战
-
训练集说明
大概是一万多张图片,我只用了不到一半的图片来训练 -
项目目录
-
训练结果
-
预测结果
-
示例程序
#utf-8
from __future__ import print_function
import keras
from keras.models import Sequential, load_model
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.preprocessing import image
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import os
import random
import matplotlib as mpl
from matplotlib.image import imread
batch_size = 128
num_classes = 10
epochs = 12#次数
img_rows, img_cols = 28, 28
classs1 = {
1:'狗',0:'猫'}
classes2={
'cat':0,'dog':1}
"""
train文件夹下
0 : 猫🐱
1 : 狗🐕
"""
#文件转换为 np 数组 用于predict
def image_file_nparray(image_path, width=100,height=100):
img = image.load_img(image_path, target_size=(width,height))
img = image.img_to_array(img)
x = np.expand_dims(img, axis=0)
return x
#裁剪单个图片
def convert_one_image(file_path,width=100,height=100):
img = Image.open(file_path)
try:
new_img = img.resize((width,height), Image.BILINEAR)
new_img.save(file_path)
except Exception as e:
print("convert image error"