TensorFlow高层封装之TFLearn

TensorFlow高层封装之TFLearn

转载请注明出处:https://blog.csdn.net/qq_41007606/article/details/82050958
和TensorFlow-Slim一样,TFLearn也是Tensorflow的一个高层封装。但是与前者相比,TFLearn是一个更加简洁的TensorFlow高层封装。使用tflearn可以更加轻松的完后深度神经网络的搭建,训练,测试等过程。
tflearn没有集成在Tensorflow安装包中,需要单独下载安装:

pip install tflearn

安装完tflearn之后,就可以使用它来实现神经网络了。
下面我们来看一下使用tflearn在MNIST数据集上实现LeNet-5。
1、导入相关的包和数据集

import tflearn
from tflearn.layers.core import input_data, fully_connected
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.estimator import regression

import tflearn.datasets.mnist as mnist

2、读取MNIST数据

trainX, trainY, testX, testY = mnist.load_data(data_dir='/path/to/MNIST_data', one_hot=True)

3、将图像数据转化为卷积神经网络输入格式

trainX = trainX.reshape([-1,28,28,1])
testX = teseX.reshape([-1,28,28,1])

4、构建神经网络

x = input_data(shape=[None,28,28,1],name='x')

conv1 = conv_2d(x, 32, 5, activation='relu')
pool1 = max_pool_2d(conv1, 2)

conv2 = conv_2d(pool1, 64, 5, activation='relu')
pool2 = max_pool_2d(conv2, 2)

full1 = fully_connected(pool2, 500, activation='relu') #构建全连接层
full2 = fully_connected(full1, 10, activation='softmax')

5、指定优化器、学习率、损失函数

opt = regression(full2, optimizer='sgd', learning_rate=0.01, loss='categorical_crossentropy')

6、训练
tflearn将模型的训练过程封装到了一个类中。

model = tflearn.DNN(opt, tensorboard_verbose=0)
model.fit(trainX, trainY, n_epoch=20, validation_set=([testX, testY]), show_metric=True)

以上就是使用TFLearn搭建LeNet-5的全部过程,是不是看起来比Slim更加简洁呢。
上面的代码可以直接运行喔,博主已经跑过了,感兴趣的朋友可以自己写一下试试。

如果觉得博主的文章对您有所帮助,记得关注一下呦!您的支持就是我不断更新下去的最强动力。

如有不对的地方请指正,谢谢
有需要深度学习及机器视觉相关开发环境的可加博主QQ获取,有问题请联系下方QQ直接与博主本人交流。博主会定期更新视觉相关算法使用及实际项目讲解,谢谢各位
博主QQ:2021907249

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
# 工程内容 这个程序是基于tensorflowtflearn库实现部分RCNN功能。 # 开发环境 windows10 + python3.5 + tensorflow1.2 + tflearn + cv2 + scikit-learn # 数据集 采用17flowers据集, 官网下载:http://www.robots.ox.ac.uk/~vgg/data/flowers/17/ # 程序说明 1、setup.py---初始化路径 2、config.py---配置 3、tools.py---进度条和显示带框图像工具 4、train_alexnet.py---大数据集预训练Alexnet网络,140个epoch左右,bitch_size为64 5、preprocessing_RCNN.py---图像的处理(选择性搜索、数据存取等) 6、selectivesearch.py---选择性搜索源码 7、fine_tune_RCNN.py---小数据集微调Alexnet 8、RCNN_output.py---训练SVM并测试RCNN(测试的时候测试图片选择第7、16类中没有参与训练的,单朵的花效果好,因为训练用的都是单朵的) # 文件说明 1、train_list.txt---预训练数据,数据在17flowers文件夹中 2、fine_tune_list.txt---微调数据2flowers文件夹中 3、1.png---直接用选择性搜索的区域划分 4、2.png---通过RCNN后的区域划分 # 程序问题 1、由于数据集小的原因,在微调时候并没有像论文一样按一个bitch32个正样本,128个负样本输入,感觉正样本过少; 2、还没有懂最后是怎么给区域打分的,所有非极大值抑制集合canny算子没有进行,待续; 3、对选择的区域是直接进行缩放的; 4、由于数据集合论文采用不一样,但是微调和训练SVM时采用的IOU阈值一样,有待调参。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nice七仔爱地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值