1、复现VGG训练自定义图像分类,成功了哈哈。

  需要代码工程可联系博主qq号,在左边连接可找到。

  核心代码:

# coding:utf-8
import tensorflow as tf
import os
from load_vgg19_model import net os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' def VGG19_image_classifier(X,Y,nn_classes): vgg19_path = "./vgg19_model/imagenet-vgg-verydeep-19.mat"
net_list,mean_pixel,all_layers = net(vgg19_path,X) vgg19_pool5 = net_list[-1]["pool5"] vgg19_pool5_shape = vgg19_pool5.get_shape().as_list() vgg19_pool5_number = vgg19_pool5_shape[1]*vgg19_pool5_shape[2]*vgg19_pool5_shape[3] weights = {
'wd1': tf.Variable(tf.random_normal([vgg19_pool5_number, 4096])),
'wd2': tf.Variable(tf.random_normal([4096, 4096])),
'out': tf.Variable(tf.random_normal([4096, nn_classes]))
} biases = {
'bd1': tf.Variable(tf.zeros([4096])),
'bd2': tf.Variable(tf.zeros([4096])),
'out': tf.Variable(tf.zeros([nn_classes]))
} # 全连接一层
_densel = tf.reshape(vgg19_pool5, [-1, vgg19_pool5_number]) fc6 = tf.add(tf.matmul(_densel,weights["wd1"]),biases["bd1"])
relu6 = tf.nn.relu(fc6) # 全连接二层 fc7 = tf.add(tf.matmul(relu6,weights["wd2"]),biases["bd2"])
relu7 = tf.nn.relu(fc7) # 输出层
fc8 = tf.add(tf.matmul(relu7,weights["out"]),biases["out"]) # out = tf.nn.softmax(fc8)
out = fc8 # 损失函数 loss
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=out)) # 计算交叉熵 # 优化目标 optimizing
optimizing = tf.train.AdamOptimizer(0.0001).minimize(loss) # 使用adam优化器来以0.0001的学习率来进行微调 # 精确度 accuracy
correct_prediction = tf.equal(tf.argmax(Y, 1), tf.argmax(out, 1)) # 判断预测标签和实际标签是否匹配
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) # 想要保存的模型参数,方便加载找到。
tf.add_to_collection("loss", loss)
tf.add_to_collection("out", out)
tf.add_to_collection("accuracy", accuracy)
tf.add_to_collection("optimizing", optimizing) return {
"loss": loss,
"optimizing": optimizing,
"accuracy": accuracy,
"out": out,
"mean_pixel":mean_pixel
}

  

  小批量梯度训练方法如下图,才训练1次达到88%。

复现VGG19训练自定义图像分类的更多相关文章

  1. 基于Tensorflow + Opencv 实现CNN自定义图像分类

    摘要:本篇文章主要通过Tensorflow+Opencv实现CNN自定义图像分类案例,它能解决我们现实论文或实践中的图像分类问题,并与机器学习的图像分类算法进行对比实验. 本文分享自华为云社区< ...

  2. Tesseract-OCR-v5.0中文识别,训练自定义字库,提高图片的识别效果

    1,下载安装Tesseract-OCR 安装,链接地址https://digi.bib.uni-mannheim.de/tesseract/ ​ 2,安装成功 tesseract -v 注意:安装后, ...

  3. Yolo训练自定义目标检测

    Yolo训练自定义目标检测 参考darknet:https://pjreddie.com/darknet/yolo/ 1. 下载darknet 在 https://github.com/pjreddi ...

  4. [炼丹术]YOLOv5训练自定义数据集

    YOLOv5训练自定义数据 一.开始之前的准备工作 克隆 repo 并在Python>=3.6.0环境中安装requirements.txt,包括PyTorch>=1.7.模型和数据集会从 ...

  5. yolov5训练自定义数据集

    yolov5训练自定义数据 step1:参考文献及代码 博客 https://blog.csdn.net/weixin_41868104/article/details/107339535 githu ...

  6. 利用Tensorflow训练自定义数据

    很多正在入门或刚入门TensorFlow机器学习的同学希望能够通过自己指定图片源对模型进行训练,然后识别和分类自己指定的图片.但是,在TensorFlow官方入门教程中,并无明确给出如何把自定义数据输 ...

  7. tensorflow从训练自定义CNN网络模型到Android端部署tflite

    网上有很多关于tensorflow lite在安卓端部署的教程,但是大多只讲如何把训练好的模型部署到安卓端,不讲如何训练,而实际上在部署的时候,需要知道训练模型时预处理的细节,这就导致了自己训练的模型 ...

  8. MMDetection 快速开始,训练自定义数据集

    本文将快速引导使用 MMDetection ,记录了实践中需注意的一些问题. 环境准备 基础环境 Nvidia 显卡的主机 Ubuntu 18.04 系统安装,可见 制作 USB 启动盘,及系统安装 ...

  9. Scaled-YOLOv4 快速开始,训练自定义数据集

    代码: https://github.com/ikuokuo/start-scaled-yolov4 Scaled-YOLOv4 代码: https://github.com/WongKinYiu/S ...

随机推荐

  1. LintCode-374.螺旋矩阵

    螺旋矩阵 给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素. 样例 给定如下矩阵: [     [ 1, 2, 3 ],     [ 4, 5, 6 ...

  2. error LNK2019: 无法解析的外部符号 该符号在函数 中被引用 解决方案

    需要添加lib或者dll库.项目-属性-配置属性-链接器-输入-附件依赖项,添加需要的lib. 例如我在运行OSG程序的时候,忘记添加了附件依赖项就会报这个错. 解决方案如图.

  3. Node js MySQL简单操作

    //win7环境下node要先安装MySQL的相关组件(非安装MySQL数据库),在cmd命令行进入node项目目录后执行以下语句 //npm install mysql var mysql = re ...

  4. 完整和增量备份MySQL脚本

    本文档采用mysqldump 对数据库进行备份,mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法 ...

  5. python dict 字典

    字典是通过hash表的原理实现的,每个元素都是一个键值对,通过元素的键计算出一个唯一的哈希值,这个hash值决定了元素的地址,因此为了保证元素地址不一样,必须保证每个元素的键和对应的hash值是完全不 ...

  6. UDP发送的数据 以数据包形式发送

    UDP发送的数据 以数据包形式发送

  7. Oracle 验证A表的2个字段组合不在B表2个字段组合里的数据

    select id, name from TAB_A t where not exists (select 1 from TAB_B t1 where t.id = t1.id and t.name ...

  8. 【以前的空间】bzoj1009 [HNOI2008]GT考试

    动态规划+kmp+矩阵快速幂 关于这题可以写出一个dp方程(f[i,j]表示准考证前i位中后j位为不吉利的数字的前j位的情况的个数) f[i,j]=Σf[i-1,k],其中j表示不吉利数字前k个数字加 ...

  9. Codeforces Round #469 (Div. 2) F. Curfew

    贪心 题目大意,有2个宿管分别从1和n开始检查房间,记录人数不为n的房间个数,然后锁住房间. 没有被锁的房间中的学生可以选择藏在床底,留在原地,或者转移(最远转移d个房间)   然后抄了网上大神的代码 ...

  10. Spark2.1.0之初识Spark

    随着近十年互联网的迅猛发展,越来越多的人融入了互联网——利用搜索引擎查询词条或问题:社交圈子从现实搬到了Facebook.Twitter.微信等社交平台上:女孩子们现在少了逛街,多了在各大电商平台上的 ...