首页 > Web开发 > 详细

深度学习原理与框架-Alexnet(迁移学习代码)

时间:2019-03-20 19:34:23      阅读:544      评论:0      收藏:0      [点我收藏+]

代码说明:这里只进行图片分类的测试,并不进行图片的训练,使用的方法是读入.npy文件,获得的数据是字典类型的参数数据,字典的键是’conv1‘,‘fc6‘每一层的名字,字典的值是一个大列表,列表中有两个数据,一个是w的值,一个是b的值,对于w的值,其len(w.shape) > 1, 对于b的值,其len(b.shape) = 1 

需要做的是:构建Alexnet的网络结构,读入npy已经训练好的参数,并进行训练

数据说明:测试数据为3张图片,使用cv2.resize将数据的维度变成(227, 227)

 

代码:

第一步:使用argpase.ArgumentParser() 构建输入参数,parser.add_argument添加参数,这里使用的参数是图片的来源args.images, 图片的地址args.path 

第二步:读取图片

            判断图片的来源方式:

                如果是folder, 使用lamda f: ’{}/{}‘.format(args.path, f) 构建文件的路径, 使用os.listdir(args.path) 遍历文件里的文件名,使用cv2.imread(withpath(f)) 读取文件, 使用os.path.isfile(withpath(f)) 判断是否是文件,使用dict将读取的结果进行组合

               如果是url,即网络上的图片地址,构建读取图片的函数,使用urllib.request.urlopen()打开文件路径,使用bytearray(resp.read()) 将读取的图片转换为二进制格式,使用cv2.imdecode() 将图片转换为utf-8类型

第三步:如果读到图片,进行参数的设置,

             dropout: 用于进行tf.nn.dropout的keep_prob 

             skip: 用于在后续的参数加载中,用来去掉不需要进行加载的参数

             numClass: 分类的结果数

             x: tf.placeholder() 用于进行输入数据的初始化

             imgMean: 图片的均值,用于后续的图片去均值

第四步:模型的实例化操作

             

 

深度学习原理与框架-Alexnet(迁移学习代码)

原文:https://www.cnblogs.com/my-love-is-python/p/10567016.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!