软件工程学习进度第九周暨暑假学习进度之第九周汇总
本周学习的是U-net神经网络,据了解,U-net论文的作者是参加ISBI竞赛取得效果后发表的文章供大家学习,论文原文链接:
1 def conv_relu_layer(net,numfilters,name): 2 network = tf.layers.conv2d(net, 3 activation=tf.nn.relu, 4 filters= numfilters, 5 kernel_size=(3,3), 6 padding='Valid', 7 name= "{}_conv_relu".format(name)) 8 return network
2、maxpooling
1 def maxpool(net,name): 2 network = tf.layers.max_pooling2d(net, 3 pool_size= (2,2), 4 strides = (2,2), 5 padding = 'valid', 6 name = "{}_maxpool".format(name)) 7 return network
3、up-conv
1 def up_conv(net,numfilters,name): 2 network = tf.layers.conv2d_transpose(net, 3 filters = numfilters, 4 kernel_size= (2,2), 5 strides= (2,2), 6 padding= 'valid', 7 activation= tf.nn.relu, 8 name = "{}_up_conv".format(name)) 9 return network
4、copy-prop
1 def copy_crop(skip_connect,net): 2 skip_connect_shape = skip_connect.get_shape() 3 net_shape = net.get_shape() 4 print(net_shape[1]) 5 size = [-1,net_shape[1].value,net_shape[2].value,-1] 6 skip_connect_crop = tf.slice(skip_connect,[0,0,0,0],size) 7 concat = tf.concat([skip_connect_crop,net],axis=3) 8 return concat
5、conv1*1
def conv1x1(net,numfilters,name):return tf.layers.conv2d(net,filters=numfilters,strides=(1,1),kernel_size=(1,1),name = "{}_conv1x1".format(name),padding='SAME')
1 #define input data 2 input = tf.placeholder(dtype=tf.float32,shape = (64,572,572,3)) 3 4 5 #define downsample path 6 network = conv_relu_layer(input,numfilters=64,name='lev1_layer1') 7 skip_con1 = conv_relu_layer(network,numfilters=64,name='lev1_layer2') 8 network = maxpool(skip_con1,'lev2_layer1') 9 network = conv_relu_layer(network,128,'lev2_layer2') 10 skip_con2 = conv_relu_layer(network,128,'lev2_layer3') 11 network = maxpool(skip_con2,'lev3_layer1') 12 network = conv_relu_layer(network,256,'lev3_layer1') 13 skip_con3 = conv_relu_layer(network,256,'lev3_layer2') 14 network = maxpool(skip_con3,'lev4_layer1') 15 network = conv_relu_layer(network,512,'lev4_layer2') 16 skip_con4 = conv_relu_layer(network,512,'lev4_layer3') 17 network = maxpool(skip_con4,'lev5_layer1') 18 network = conv_relu_layer(network,1024,'lev5_layer2') 19 network = conv_relu_layer(network,1024,'lev5_layer3') 20 21 #define upsample path 22 network = up_conv(network,512,'lev6_layer1') 23 network = copy_crop(skip_con4,network) 24 network = conv_relu_layer(network,numfilters=512,name='lev6_layer2') 25 network = conv_relu_layer(network,numfilters=512,name='lev6_layer3') 26 27 network = up_conv(network,256,name='lev7_layer1') 28 network = copy_crop(skip_con3,network) 29 network = conv_relu_layer(network,256,name='lev7_layer2') 30 network = conv_relu_layer(network,256,'lev7_layer3') 31 32 33 network = up_conv(network,128,name='lev8_layer1') 34 network = copy_crop(skip_con2,network) 35 network = conv_relu_layer(network,128,name='lev8_layer2') 36 network = conv_relu_layer(network,128,'lev8_layer3') 37 38 39 network = up_conv(network,64,name='lev9_layer1') 40 network = copy_crop(skip_con1,network) 41 network = conv_relu_layer(network,64,name='lev9_layer2') 42 network = conv_relu_layer(network,64,name='lev9_layer3') 43 network = conv1x1(network,2,name='lev9_layer4')
利用TensorFlow实现的U-net架构如下
(图片来源于百度)
学习过程中碰到一位GitHub大佬发表的项目,链接如下:
运行test_predict.py即可将模型预测得到的结果进行可视化
最后data_version.py可以将测试集及其结果集保存为指定的图片格式以及指定的路径
注意程序最好在Ubuntu上跑,Windows中要进行很多改动
U-net的本质还是从cnn上改写过来的,之前对cnn了解并不是很深入,这次特别对cnn做了一些了解
与此同时通过查询资料了解到cnn的强大之处在于
1、较浅的卷积层感知域较小,容易学习到一些局部区域的特征
2、较深的卷积层感知域较大,能够学习到一些更加抽象的特征
这些抽象特征对物体的大小、位置和方向等敏感性更低,从而有助于分类性能的提高
而对u-net的根本认识还是要基于FCN啊,往后几天不打算往后进行什么,主要还是扎实基础
以上就是本周进度了,加油!
转载于:https://www.cnblogs.com/zdm-code/p/11442672.html
软件工程学习进度第九周暨暑假学习进度之第九周汇总相关推荐
- 软件工程学习进度第七周暨暑期学习进度之第七周汇总
本周的学习重心依旧是深度学习,主要实践项目为基于TensorFlow深度学习框架的字母.数字组成的验证码识别.在上周进行了mnist手写数字识别之后,本以为验证码识别是一件很简单的事,但实践起来发现并 ...
- 软件工程学习进度第三周暨暑期学习进度之第三周汇总
第三周,本周并未将重心放在java学习上,只是在教数据结构的刘老师留的暑假作业PTA练习题上使用java进行编程,本周的重心主要放在机器学习上,javaweb只是了解了一部分jQuery的内容,优化了 ...
- 软件工程学习进度第八周暨暑期学习进度之第八周汇总
本周的主要工作是win10+TensorFlow环境下的FCN全卷积神经网络的实现 FCN对图像进行像素级的分类,从而解决了语义级别的图像分割问题.与经典的CNN在卷积层使用全连接层得到固定长度的特征 ...
- 软件工程学习进度第六周暨暑期学习进度之第六周汇总
本周通过深度学习的卷积神经网络(CNN)实现了mnist数据集手写数字识别(前段时间实现的是全连接神经网络做的手写数字识别),使用全连接时识别准确率在91%左右,这个精度在手写数字中实在不高,但是使用 ...
- 软件工程学习进度第五周暨暑期学习进度之第五周汇总
博文内容中字符过多,拒绝显示 转载于:https://www.cnblogs.com/zdm-code/p/11300609.html
- 软件工程学习进度第四周暨暑期学习进度之第四周汇总
本周进度主要有javaweb制作的学生信息管理系统的分页查询功能以及分页插件的实现,web前端中css的页面布局方式.浮动和清除浮动的方法,css动画,元素定位类型,以及css图片精灵和钩子,另外实现 ...
- 深度学习笔记第一门课第一周:深度学习引言
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 《机器学习》周志华 学习笔记
<机器学习>周志华 学习笔记 第一章 绪论 1.1 引言 机器学习:致力于研究如何通过计算的手段,利用经验来改善系统自身的性能. 经验:"经验"通常以"数据& ...
- 2014暑假学习总结
计算机:B/S扫尾 java开始 假期伊始,计算机学习在B/S尾巴阶段,也是最有意思的一段,主要学习了javascript(三周),css+div(2天),JQuery(一周),Ajax(一周 ...
最新文章
- 智能驾驶L2发展策略
- python 习题集锦
- virtual box卸载后无法正常安装
- 聚集索引:SQL Server 进阶 Level 3
- 3.7 非极大值抑制-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- 云端的ABAP Restful服务开发
- ASP.NET MVC+LINQ开发一个图书销售站点(9):编辑目录
- 传统数仓不够怎么办?不妨看看这个银行的混合数仓实践,建议收藏
- C 语言取整的几种方法6,C语言有以下几种取整方法:
- 《海外社交媒体营销》一一2.2 根据你的公司特点,制订适合自己的营销计划...
- 升级到新SQL Server版本
- J2EE 快速开发框架 Wabacus 3.3 版功能列表
- 将 Entity Framework、LINQ 和 Model-First 用于 Oracle 数据库
- 58移动开发 App 工厂
- CommonAPI编写代码
- Molecular Contrastive Learning of Representations via Graph Neural Networks
- linux系统mysql密码忘记了怎么办_Linux中MySQL密码忘了怎么办
- Mysql操作语句大全
- 深入理解Mysql事务ACID特性以及事务隔离级别
- SQL入门SQL基本介绍