技术文章 | 用TensorFlow和TensorBoard从零开始构建ConvNet(CNN)
来源:互联网 发布:620f清零软件 编辑:程序博客网 时间:2024/06/05 20:05
本文来源于阿里云-云栖社区,原文点击这里。
在本教程中,我将介绍如何使用TensorFlow,从头开始构建卷积神经网络,并使用TensorBoard可视化我们的图形及神经网络性能。如果您不了解完全神经网络的一些基础知识,我强烈建议您首先看另一个教程关于TensorFlow。在这篇文章中,我也把卷积神经网络的每个步骤讲的都很仔细,所以你可以在文章中完全了解每个步骤发生了什么。未来您可以看到每一层的卷积,并使用它们进行自己的网络模型构建,所以我从头开始构建该模型。我只会强调主要的代码,不过你可以在GitHub上下载源码。
1.选择数据集
一开始,我先要选择图像数据集。我决定用牛津大学的宠物数据集。我选择了这个数据集的原因很简单:标签非常简单,训练数据也不错,而且还有一些边框。另一个我认为对于创建第一个模型是非常好的数据集是在Kaggle上发现的辛普森数据集。
2.选择一个模型
第二步,必须决定我们的卷积神经网络的模型。一些非常受欢迎的型号例如:GoogLeNet或VGG16,它们都具有多个卷积,可以用于检测1000种数据集imagenet中的图像。我决定一个更简单的卷积网络:
我们先简要的分解这个模型,它以一个224x224x3的图像开始,它根据前三个通道卷积到32个特征图(Feature Map)。我们将这组32个特征图集合到另外32个特征中。然后将其汇总到112x112x32图像中,我们将卷入64个特征图,然后再次进行二次,最后汇总为56x56x64。然后将这个最终合并的层的每个单元完全连接到一个512个的神经元中,然后基于类的数量最后放入softmax层。整个过程就是如此,如果你对上述有一些疑问,可以进一步与我交流。
3.处理和构建数据集:
首先,我们要加载我们的依赖项,其中包括我所调用的功能函数imFunctions
来处理图像数据。
import imFunctions as imfimport tensorflow as tfimport scipy.ndimagefrom scipy.misc import imsaveimport matplotlib.pyplot as pltimport numpy as np
我们可以使用imFunctions
提供的下载的方式提取图像。
imf.downloadImages('annotations.tar.gz', 19173078)imf.downloadImages('images.tar.gz', 791918971)imf.maybeExtract('annotations.tar.gz')imf.maybeExtract('images.tar.gz')
然后我们可以将图像分成不同的文件夹,其中包括训练文件夹和测试文件夹。sortImages
函数中的数字表示的是您想从训练数据中分离出测试数据的百分比。
imf.sortImages(0.15)
然后,我们可以使用相应的一个热矢量(one-hot)将我们的数据集构建成一个numpy数组,以表示我们的类。该函数将会表现您要让神经网络做那些事,由于我有限的GPU RAM(3GB),我选择了一个非常小的数据集,仅仅试图区分两种狗:来自萨摩耶的ShibaInu。
train_x, train_y, test_x, test_y, classes, classLabels = imf.buildDataset()
4.如何卷积实现功能
现在我们有一个数据集可以使用,其次就是了解卷积如何工作。在跳入彩色卷积滤波器之前,让我们来看一下灰度图。让我们制作一个应用四个不同特征图的7x7滤镜。TensorFlow的conv2d功能相当简单,它包含四个变量:输入,过滤器,步幅和填充。在TensorFlow官方网站上,他们描述的conv2d功能如下:
展开全文
- 技术文章 | 用TensorFlow和TensorBoard从零开始构建ConvNet(CNN)
- 用TensorFlow和TensorBoard从零开始构建ConvNet(CNN)
- 使用TensorFlow和TensorBoard从零开始构建卷积神经网络
- TensorFlow学习笔记(四):Tensorflow网络构建和TensorBoard进行训练过程可视化
- CNN 工具安装和使用(caffe+ convNet)
- 从零开始使用TensorFlow可视化工具Tensorboard
- 【TensorFlow】TensorFlow 的卷积神经网络 CNN - 无TensorBoard版
- tensorflow 构建CNN识别自己的数据(类似于MNSIT)
- 【TensorFlow | TensorBoard】理解 TensorBoard
- TensorFlow----TensorBoard
- Tensorflow安装和Tensorboard的使用
- TensorFlow命名空间和TensorBoard图节点
- TensorFlow学习笔记2:构建CNN模型
- TensorFlow学习笔记2:构建CNN模型
- TensorFlow学习笔记2:构建CNN模型
- TensorFlow学习笔记2:构建CNN模型
- 利用Tensorflow构建CNN,步骤梳理
- 用tensorflow搭建CNN
- 取消老毛桃赞助
- facebook分享之密钥散列获取
- Linux基础知识笔记(二)
- popwindow
- 正则表达式
- 技术文章 | 用TensorFlow和TensorBoard从零开始构建ConvNet(CNN)
- 这是我看过讲神经网络最明白的一篇
- 几种C#程序读取MAC地址的方法
- hdu 3047 带权并查集
- Greenplum ao表和heap表垃圾回收的细微差别
- CATiledLayer
- Golang汇编Sample
- 美国视频质量测试的解决方案
- Docker中安装Tomcat7