读《Python深度学习》笔记
其中的vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5我放在这了
链接:https://pan.baidu.com/s/1Zr2diB69xYRizz-JGS93gw
提取码:i5lj

'''使用VGG网络:但不使用数据增强的快速特征提取''''''将VGG16卷积实例化'''
from keras.applications import VGG16
# weight:指定模型初始化的权重检查点
# include_top:指定模型最后是否包含密集连接分类器。默认情况下,这个密集连接分类器对应于ImageNet的1000个类别
#             因为我们打算使用自己的密集连接分类器(只有两个类别:cat和dog),所以False掉
# input_shape:是输入到网络中的图像张量的形状。如果不传参,那么网络能够处理任意形状的输入
conv_base = VGG16(weights='imagenet',include_top=False,input_shape=(150, 150, 3))'''使用预训练的快速特征提取'''
import os
import numpy as np
from keras.preprocessing.image import ImageDataGeneratorbase_dir = r'G:\00_文件\数据集\kaggle数据集\dogs-vs-cats-small'
train_dir = os.path.join(base_dir, 'train')
validation_dir = os.path.join(base_dir, 'validation')
test_dir = os.path.join(base_dir, 'test')datagen = ImageDataGenerator(rescale=1. / 255)
batch_size = 20def extract_features(directory, sample_count):features = np.zeros(shape=(sample_count, 4, 4, 512))labels = np.zeros(shape=sample_count)generator = datagen.flow_from_directory(directory=directory,target_size=(150, 150),batch_size=batch_size,class_mode='binary')i = 0for inputs_batch, labels_batch in generator:features_batch = conv_base.predict(inputs_batch)features[i * batch_size : (i+1) * batch_size] = features_batchlabels[i * batch_size : (i+1) * batch_size] = labels_batchi += 1# 注意,生成器在循环中不断生成数据,所以你必须在读取完所有图像后终止循环if i * batch_size >= sample_count:breakreturn features, labelstrain_features, train_labels = extract_features(train_dir, 2000)
validation_features, validation_labels = extract_features(validation_dir, 1000)
test_features, test_labels = extract_features(test_dir, 1000)# 目前提取的特征形状为(samples, 4, 4, 512),要将其输入到密集连接分类器中,首先展平为(samples, 8192)
train_features = np.reshape(train_features, (2000, -1))             # 4*4*512
validation_features = np.reshape(validation_features, (1000, -1))   # 4*4*512
test_features = np.reshape(test_features, (1000, -1))               # 4*4*512'''定义并训练密集连接分类器'''
from keras import models
from keras import layers
from keras import optimizers
# from keras import losses
# from keras import metricsmodel = models.Sequential()
model.add(layers.Dense(256, activation='relu', input_dim=4*4*512))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(1, activation='sigmoid'))model.compile(optimizer=optimizers.RMSprop(lr=2e-5),loss='binary_crossentropy',metrics=['acc'])history = model.fit(train_features, train_labels,epochs=30,batch_size=20,validation_data=(validation_features, validation_labels))print(history.history.keys())'''绘制结果'''
import matplotlib.pyplot as plt
acc = history.history['acc']
val_acc = history.history['val_acc']
loss = history.history['loss']
val_loss = history.history['val_loss']epochs = range(1, len(acc) + 1)plt.plot(epochs, acc, 'bo', label='Training acc')
plt.plot(epochs, val_acc, 'b', label='Validation acc')
plt.plot(epochs, loss, 'ro', label='Training loss')
plt.plot(epochs, val_loss, 'r', label='Validation loss')
plt.title("all")
plt.legend()plt.show()

结果会有warning,但是不影响,found images这个过程会比较漫长,但是后面的训练非常快速

Kaggle猫狗大战升级版VGG16处理相关推荐

  1. kaggle猫狗大战

    kaggle猫狗大战 kaggle上的猫狗大战,即对猫狗图片的分类预测,没有特征数据,只有图片,所以只能运用神经网络对其训练预测.看了大量的kaggle上的公开例子,大多运用TensorFlow或者K ...

  2. tensorflow kaggle猫狗大战识别猫狗

    一,Kaggle猫狗大战数据集: 下载地址:https://www.kaggle.com/c/dogs-vs-cats 下载解压后会有两个文件目录,一个测试数据,一个训练数据: 训练数据: 二,训练代 ...

  3. 【实战】kaggle猫狗大战-卷积神经网络实现猫狗识别

    卷积神经网络:猫狗识别 目录 第一步:导入数据集 第二步:数据预处理 第三步:迁移学习 第四步:模型保存 第五步:模型融合 第一步:导入数据集 kaggle猫狗大战数据集地址:kaggle # 将ka ...

  4. Kaggle猫狗大战——基于Pytorch的CNN网络分类:数据获取、预处理、载入(1)

    Kaggle猫狗大战--基于Pytorch的CNN网络分类:数据获取.预处理.载入(1) 第一次写CSDN博客,之前一直是靠着CSDN学学代码,这次不得不亲自上场了,就想着将学习的过程都记录下来.新人 ...

  5. [Python深度学习]kaggle猫狗大战

    1.kaggle链接 2.在此处新建一个notebook(和Jupyter Notebook类似) 在右上角可以看到猫狗大战所需要用到的数据集 3.首先将数据集进行解压 (为避免切换到错误的目录下执行 ...

  6. Kaggle猫狗大战模型搭建总结

    0.前言 基于我暑假内学习的深度学习理论知识,我的学长建议我仿照他所设计的猫狗大战模型来尝试运用tensorflow与keras搭建神经网络,虽然我对python并不是很了解,但我依旧愿意尝试搭建来提 ...

  7. Kaggle猫狗大战数据集免费下载

    以下为猫狗大战数据集下载链接,进入后就自动下载,猫狗图片数据集各12500张. https://www.microsoft.com/en-us/download/confirmation.aspx?i ...

  8. kaggle猫狗大战[包含训练(25000张猫狗照片)和测试数据集(12500张猫狗照片)

    ** kaggle比赛猫狗数据集百度网盘分享 ** 打开链接:https://pan.baidu.com/s/1PGDXtCWm1cpVlg8IwmFJMg 提取码:x45f

  9. 深度学习tensorflow之kaggle猫狗大战实现

    出处:http://www.fengchang.cc/post/100 今天彻底完成猫狗大战的任务,来几张图展示一下, 源代码在此​,本文图的是在模型训练到52000个batch时保存的checkpo ...

最新文章

  1. 人工智能成热点,斯坦福华人女教授提出这观点,研究院因她成立!
  2. 前方高能!AI 大牛 LeCun 设想下一个新前沿:摈弃深度学习的所有概率技巧,改而掌握不断转变的能量值...
  3. Struts2配置文件【代码库】
  4. 播放生成Android4.0.3中的提示音
  5. oracle mssql交换数据库,Database link 连接oracle MSSql 实现逻辑数据互导
  6. 线段树-Chossing Ads-分治,主元素思想,神题
  7. 解决“计划任务不存在的问题”方法
  8. COSC 1047 – Winter 2019 – Assignment
  9. sed for windows 双引号内部内容的替换
  10. chrome onetab_我的 Chrome 高效拓展推荐
  11. nativefier - 把网页生成桌面应用程序
  12. 编译OpenJDK8:Target CPU mismatch. We are building for x86_64 but CL is for ; expected x64
  13. 高数特殊符号-希腊字母
  14. C#Winform中运用DevExpress提供的ChartControl控件绘制多条曲线图
  15. 高优先权调度算法和高响应比优先调度算法
  16. BP神经网络——激活函数
  17. 年度盘点和预测:数说汽车互联网市场
  18. android手机导入iphone,安卓手机文件怎么传到苹果手机
  19. 西安10万条业主信息被贩卖
  20. python显示倒计时_python版春节倒计时实时显示

热门文章

  1. oracle spool 分隔符_Oracle spool 用法小结
  2. JAVA中配置环境变量设置方法大全
  3. 第一章、排队队,分果果——排序
  4. 惠租车葡萄牙租车攻略
  5. 学习吸收优秀者的开发习惯,并自己复述出来
  6. 物理层和Mac层的区别
  7. css实现圆中居中显示文字
  8. HDU 4521 小明系列问题——小明序列 LIS+动态规划
  9. 伽马分布的期望与方差
  10. Windows使用mingw64编译生成dll动态库