【初学者系列】TensorFlow学习笔记 — 构建简单卷积网络进行图像分类

  • 2019 年 10 月 4 日
  • 筆記

【导读】TensorFlow 是一个端到端开源机器学习框架。借助 TensorFlow,可以轻松地创建机器学习模型。本文介绍如何利用TensorFlow构建简单卷积网络进行图像分类。

以下代码导入包如下:

一、数据预处理

本文采用的数据是自定义数据集,找了几个电脑软件界面,选取了四类图片:

0 = >crt

1 => excel

2 => ppt

3 => txt

将图片变为24x24x3的图片。代码如下:

得到以下图片:

配置信息如下,其中,图片文件存放在data_dir文件夹中,train表示当前执行是训练还是测试,model_path约定了模型存放的路径:

读取数据是将图片文件夹中的图片读入numpy的array中。注意,pillow读取的图像像素值在0-255之间,需要归一化。代码如下:

占位符placeholder并没有初始值,它只会分配必要的内存,用sklearn划分数据集以及定义placeholder如下:

二、网络搭建

卷积层以及全链接层:

损失函数、优化器、模型保存器/载入器,这里,没有必要给Optimizer传递平均的损失,直接将未平均的损失函数传给Optimizer即可。:

三、训练及测试

训练:

测试:

四、结果

测试输出结果如下:

通过调整网络结构,可将F1 Score升到更高

资源来啦

本文代码百度网盘链接:

https://pan.baidu.com/s/18TKRzo1JajMgcKtxysOSlA

提取码:r9xu

本文参考github项目修改了一些内容,原项目地址为:

https://github.com/hujunxianligong/Tensorflow-CNN-Tutorial

-END-