首次运行 tensorflow 项目之 vgg 网络

首次运行 tensorflow 项目之 vgg 网络

文章目录

      • 1. 下载所需文件
      • 2. 在 pycharm 中打开项目
      • 3. 为项目设置 python 编译器
      • 4. 调试代码
        • 1. train.py
        • 2. test.py

1. 下载所需文件

下载路径
首次运行 tensorflow 项目之 vgg 网络_第1张图片
首先将需要的文件下载下来,放到一个文件夹中,这里我的路径是E:\vgg
文件夹路径
这是需要的文件,第一个是数据集,第二个文件夹包含了模型代码以及训练集和少量测试集。

2. 在 pycharm 中打开项目

首次运行 tensorflow 项目之 vgg 网络_第2张图片

点击 open,打开我们刚才在 E 盘建立的文件夹 vgg,如图

首次运行 tensorflow 项目之 vgg 网络_第3张图片

3. 为项目设置 python 编译器

File --> settings -->
首次运行 tensorflow 项目之 vgg 网络_第4张图片
选择 project interpreter
首次运行 tensorflow 项目之 vgg 网络_第5张图片
这里的 location 需要填一个空的文件夹
Base interpreter 选择 Python35,因为只有 Python35 才搭建了 tensorflow 框架

4. 调试代码

1. train.py

首先运行 train.py,如图
首次运行 tensorflow 项目之 vgg 网络_第6张图片
一运行就开始报错,开始我们的修 bug 之路吧
在这里插入图片描述
原来是 print 输出函数格式有问题,将其改为print() 就可以了
再次运行,又报错了
首次运行 tensorflow 项目之 vgg 网络_第7张图片
来看看报了什么错误
导包失败,说是没有 tensorflow 这个包,对症下药,那就导包咯
首次运行 tensorflow 项目之 vgg 网络_第8张图片
点击 install package tensorflow
在这里插入图片描述
稍等片刻
在这里插入图片描述
导包成功
再次运行,有 warning 产生,如图
在这里插入图片描述
中文意思是 提示你 tensorflow.python.ops.nn_ops 中的softmax_cross_entropy_with_logits方法已弃用,并将在以后的版本中删除 更新说明:TensorFlow未来的主要版本将在默认情况下允许梯度值流入到后向传播标签输入。具体请参阅官方的 tf.nn.softmax_cross_entropy_with_logits_v2。所以就是说当前这个方法可行但以后更新框架版本时,该方法会取消掉。并不影响当前框架下的运用。

不影响使用,暂时就先不管它了
再次运行,还有错
首次运行 tensorflow 项目之 vgg 网络_第9张图片
还是 print 函数问题,,VGG16.py 文件中还有几个类似的错误,就不一一截图了
再修改完所有的 print 函数之后,再次运行 train.py,错误如下
首次运行 tensorflow 项目之 vgg 网络_第10张图片
说是找不到 vgg16.npy 文件
首次运行 tensorflow 项目之 vgg 网络_第11张图片
发现这里面确实没有 vgg16.npy 文件,于是上网下载一个,放入 train.py 所在的文件夹中
首次运行 tensorflow 项目之 vgg 网络_第12张图片
再次运行 train.py
首次运行 tensorflow 项目之 vgg 网络_第13张图片
第一个警告刚刚说了不用管,看看第二个错误
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
大概意思是:你的CPU支持AVX扩展,但是你安装的TensorFlow版本无法编译使用。
解决方法: import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL’] = ‘2’

再次运行,让我们来看看运行结果
首次运行 tensorflow 项目之 vgg 网络_第14张图片

训练完成之后就开始测试

2. test.py

首次运行 test.py
首次运行 tensorflow 项目之 vgg 网络_第15张图片
熟悉的错误,不用多说了

修改 print 函数之后再次运行
首次运行 tensorflow 项目之 vgg 网络_第16张图片

导包错误,没有 opencv 的包,老方法,选择第二个
首次运行 tensorflow 项目之 vgg 网络_第17张图片
导包成功之后再次运行
首次运行 tensorflow 项目之 vgg 网络_第18张图片
根据 restore 这个函数,我猜测这个函数是想把训练模型存储起来以便下次调用,我也不知道怎么改,因此就将代码注释掉了。
#saver.restore(sess, ‘./model/model.ckpt-9999’)

注释之后的运行结果
首次运行 tensorflow 项目之 vgg 网络_第19张图片
换个数据集跑一跑
首次运行 tensorflow 项目之 vgg 网络_第20张图片

你可能感兴趣的:(技术文档)