python中tensorflow如何实现解猫狗识别功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了python中tensorflow如何实现解猫狗识别功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一,猫狗数据集
千家信息网最后更新 2026年11月02日python中tensorflow如何实现解猫狗识别功能
三,数据集构建
这篇文章主要介绍了python中tensorflow如何实现解猫狗识别功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一,猫狗数据集数目构成
| train | cats:1000 ,dogs:1000 |
|---|---|
| test | cats: 500,dogs:500 |
| validation | cats:500,dogs:500 |
二,数据导入
train_dir = 'Data/train'test_dir = 'Data/test'validation_dir = 'Data/validation'train_datagen = ImageDataGenerator(rescale=1/255, rotation_range=10, width_shift_range=0.2, #图片水平偏移的角度 height_shift_range=0.2, #图片数值偏移的角度 shear_range=0.2, #剪切强度 zoom_range=0.2, #随机缩放的幅度 horizontal_flip=True, #是否进行随机水平翻转# fill_mode='nearest' )train_generator = train_datagen.flow_from_directory(train_dir, (224,224),batch_size=1,class_mode='binary',shuffle=False)test_datagen = ImageDataGenerator(rescale=1/255)test_generator = test_datagen.flow_from_directory(test_dir, (224,224),batch_size=1,class_mode='binary',shuffle=True)validation_datagen = ImageDataGenerator(rescale=1/255)validation_generator = validation_datagen.flow_from_directory( validation_dir,(224,224),batch_size=1,class_mode='binary')print(train_datagen)print(test_datagen)print(train_datagen)
三,数据集构建
我这里是将ImageDataGenerator类里的数据提取出来,将数据与标签分别存放在两个列表,后面在转为np.array,也可以使用model.fit_generator,我将数据放在内存为了后续调参数时模型训练能更快读取到数据,不用每次训练一整轮都去读一次数据(应该是这样的…我是这样理解…)
注意我这里的数据集构建后,三种数据都是存放在内存中的,我电脑内存是16g的可以存放下。
train_data=[]train_labels=[]a=0for data_train, labels_train in train_generator: train_data.append(data_train) train_labels.append(labels_train) a=a+1 if a>1999: breakx_train=np.array(train_data)y_train=np.array(train_labels)x_train=x_train.reshape(2000,224,224,3)
test_data=[]test_labels=[]a=0for data_test, labels_test in test_generator: test_data.append(data_test) test_labels.append(labels_test) a=a+1 if a>999: breakx_test=np.array(test_data)y_test=np.array(test_labels)x_test=x_test.reshape(1000,224,224,3)
validation_data=[]validation_labels=[]a=0for data_validation, labels_validation in validation_generator: validation_data.append(data_validation) validation_labels.append(labels_validation) a=a+1 if a>999: breakx_validation=np.array(validation_data)y_validation=np.array(validation_labels)x_validation=x_validation.reshape(1000,224,224,3)
四,模型搭建
model1 = tf.keras.models.Sequential([ # 第一层卷积,卷积核为,共16个,输入为150*150*1 tf.keras.layers.Conv2D(16,(3,3),activation='relu',padding='same',input_shape=(224,224,3)), tf.keras.layers.MaxPooling2D((2,2)), # 第二层卷积,卷积核为3*3,共32个, tf.keras.layers.Conv2D(32,(3,3),activation='relu',padding='same'), tf.keras.layers.MaxPooling2D((2,2)), # 第三层卷积,卷积核为3*3,共64个, tf.keras.layers.Conv2D(64,(3,3),activation='relu',padding='same'), tf.keras.layers.MaxPooling2D((2,2)), # 数据铺平 tf.keras.layers.Flatten(), tf.keras.layers.Dense(64,activation='relu'), tf.keras.layers.Dropout(0.5), tf.keras.layers.Dense(1,activation='sigmoid')])print(model1.summary())
模型summary:
五,模型训练
model1.compile(optimize=tf.keras.optimizers.SGD(0.00001), loss=tf.keras.losses.binary_crossentropy, metrics=['acc'])history1=model1.fit(x_train,y_train,# validation_split=(0~1) 选择一定的比例用于验证集,可被validation_data覆盖 validation_data=(x_validation,y_validation), batch_size=10, shuffle=True, epochs=10)model1.save('cats_and_dogs_plain1.h6')print(history1)plt.plot(history1.epoch,history1.history.get('acc'),label='acc')plt.plot(history1.epoch,history1.history.get('val_acc'),label='val_acc')plt.title('正确率')plt.legend()可以看到我们的模型泛化能力还是有点差,测试集的acc能达到0.85以上,验证集却在0.65~0.70之前跳动。
六,模型测试
model1.evaluate(x_validation,y_validation)

最后我们的模型在测试集上的正确率为0.67,可以说还不够好,有点过拟合,可能是训练数据不够多,后续可以数据增广或者从验证集、测试集中调取一部分数据用于训练模型,可能效果好一些。
感谢你能够认真阅读完这篇文章,希望小编分享的"python中tensorflow如何实现解猫狗识别功能"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数据
模型
卷积
训练
篇文章
测试
内存
验证
功能
不够
图片
正确率
水平
角度
偏移
不用
两个
二层
价值
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技
小米移动互联网科技园
互联网的科技
科技制造互联网公司
互联网 科技
金融科技 互联网金融
中国 科技 互联网
互联网 卓越科技
互联网与未来科技
银优互联网科技有限公司
广州互联网络科技有限公司
互联网 新科技
互联网金融监管科技
西藏七维空间互联网科技有限公司
晋城互联网科技
徐州市互联网科技有限公司
厦门江牛科技互联网
国产互联网科技公司
科技互联网公司两年变化
恒生互联网科技趋势
耶加雪菲
互联网扶贫科技
互联网科技博客
互联网科技股午盘股票涨跌
成都互联网科技公司100强
互联网软件和科技
国大互联网教育科技有限公司工作
互联网营销推广黑科技
互联网公司属于科技吗
山东亿川互联网科技有限责任公司