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训练自定义图像分类的更多相关文章
-
基于Tensorflow + Opencv 实现CNN自定义图像分类
摘要:本篇文章主要通过Tensorflow+Opencv实现CNN自定义图像分类案例,它能解决我们现实论文或实践中的图像分类问题,并与机器学习的图像分类算法进行对比实验. 本文分享自华为云社区< ...
-
Tesseract-OCR-v5.0中文识别,训练自定义字库,提高图片的识别效果
1,下载安装Tesseract-OCR 安装,链接地址https://digi.bib.uni-mannheim.de/tesseract/ 2,安装成功 tesseract -v 注意:安装后, ...
-
Yolo训练自定义目标检测
Yolo训练自定义目标检测 参考darknet:https://pjreddie.com/darknet/yolo/ 1. 下载darknet 在 https://github.com/pjreddi ...
-
[炼丹术]YOLOv5训练自定义数据集
YOLOv5训练自定义数据 一.开始之前的准备工作 克隆 repo 并在Python>=3.6.0环境中安装requirements.txt,包括PyTorch>=1.7.模型和数据集会从 ...
-
利用Tensorflow训练自定义数据
很多正在入门或刚入门TensorFlow机器学习的同学希望能够通过自己指定图片源对模型进行训练,然后识别和分类自己指定的图片.但是,在TensorFlow官方入门教程中,并无明确给出如何把自定义数据输 ...
-
tensorflow从训练自定义CNN网络模型到Android端部署tflite
网上有很多关于tensorflow lite在安卓端部署的教程,但是大多只讲如何把训练好的模型部署到安卓端,不讲如何训练,而实际上在部署的时候,需要知道训练模型时预处理的细节,这就导致了自己训练的模型 ...
-
MMDetection 快速开始,训练自定义数据集
本文将快速引导使用 MMDetection ,记录了实践中需注意的一些问题. 环境准备 基础环境 Nvidia 显卡的主机 Ubuntu 18.04 系统安装,可见 制作 USB 启动盘,及系统安装 ...
-
Scaled-YOLOv4 快速开始,训练自定义数据集
代码: https://github.com/ikuokuo/start-scaled-yolov4 Scaled-YOLOv4 代码: https://github.com/WongKinYiu/S ...
-
ML.NET 示例:图像分类模型训练-首选API(基于原生TensorFlow迁移学习)
ML.NET 版本 API 类型 状态 应用程序类型 数据类型 场景 机器学习任务 算法 Microsoft.ML 1.5.0 动态API 最新 控制台应用程序和Web应用程序 图片文件 图像分类 基 ...
随机推荐
-
用goto做异常处理
http://www.cnblogs.com/trying/archive/2012/06/25/2863753.html 今天在CSDN上看到的关于错误返回值的讨论,感觉非常有趣. 从中可以看出被教 ...
-
Android静默安装实现方案
之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢?所谓的静默安装,就是不用弹出系统的安装界面,在不影响用户任何操作的情况下不知不觉地将程序装好.虽说这种方式看上去不打搅用户,但是却 ...
-
NetworkReachable学习笔记
一.基本知识 在需要联网的iPhone程序中,我们首先需要检查网络的状态,如果不能连接网络则告诉用户程序不能使用的原因是没有网络连接.在iPhone的SystemConfiguration框架里有提供 ...
-
Spring的lookup-method标签
Spring的解析源码 public void parseLookupOverrideSubElements(Element beanEle, MethodOverrides overrides) { ...
-
angularJs项目实战!03:angularjs与其他类库的协作(转)
angularjs,在我看来是个中等重量级的框架.即不像backbone那么简单,也不像dojo和Yui那么包罗万象.很多时候,妄图包罗万象,往往会出现很多子模块的质量高不成低不就,并且修改起来较为困 ...
-
Python内置数据类型之List篇
List的定义: li = ["one" , "two" , "three" , "four"] List是一个有序的集 ...
-
asp.net mvc下文件上传
典型的文件上传表单 <form action="/File" enctype="multipart/form-data" method="pos ...
-
Android 异步加载
Android 4.0 后 貌似规定了 在主线程中不允许访问网络,在子线程中不允许修改UI. 否则会抛出NetworkOnMainThreadException 异常 解决办法: 采用继承 Async ...
-
ASP.NET MVC 3 Razor 视图引擎 基本语法
本篇博文将进入MVC 3 的世界了,首先学习一下MVC 3 新增的Razor视图引擎的基本语法. 1. 使用 @ 字符将代码添加到页面中.正如传统的aspx视图的<% %>相同. ...
-
RTX管理器服务运行状态空白
A)打开RTX管理器安装目录下的bin文件夹,运行convert.bat 右键计算机——管理——服务——找到以RTX开头的服务,按RTX_ConfigCenter.RTX_HTTPServer. RT ...