- 将下载下来的models-master\research\slim\nets放入到当前执行的文件夹中。
C:\Users\Josie\AppData\Local\Programs\Python\Python35\Scripts\TensorFlow\models-master\research\slim\nets
- 对alexnet.py文件进行修改:主要是修改最后输出层,为了实现多路学习
- 调用nets_factory.py文件中的get_network_fn函数
注意:在查看模型中的py文件中的函数时,很可能不知道具体每个参数的真实含义及应有的数值,此时有两种方法:一是去TensorFlow的官网查找;二是将该函数代码块copy到jupyter notebook当中,利用“shift+tab”查看函数具体信息;三是找源代码。
例如:要查找slim包中nets文件夹中alexnet.py文件中某个函数conv2:
(1)先到这个路径找tensorflow-master\tensorflow\contrib\slim\ 发现这个文件夹中并没有对于卷积的相关文件。
(2)此时发现,实质是在tensorflow-master\tensorflow\contrib\layers\python\layers \layers.py文件中,搜索conv2d的定义:conv2d = convolution2d;继续查找convolution2d = convolution,再查convolution函数的定义,对照参数列表,并结合本py文件中的注释信息帮助理解。
这里可以对比看出,上一张图中的conv2的参数列表并没有传入全部的参数,其余没有赋值的参数将采用默认值
同理,也能查到池化层max_pool2d的定义。
补充:看字典/列表中元素的维度:sess.run(tf.shape( ))
运行10-3(实验室没有条件运行)代码将在\captcha\models文件夹中得到四个文件:
checkpoint
crack_captcha.model-6000.data-000…
crack_captcha.model-6000.index
crack_captcha.model-6000.meta
运行10-4程序来调用该生成的模型,进行测试。