TensorFlow模型实现:UNet模型


1.UNet模型

# -*-coding: utf-8 -*-
"""@Project: triple_path_networks@File   : UNet.py@Author : panjq@E-mail : pan_jinquan@163.com@Date   : 2019-01-24 11:18:15
"""
import tensorflow as tf
import tensorflow.contrib.slim as slimdef lrelu(x):return tf.maximum(x * 0.2, x)activation_fn=lreludef UNet(inputs, reg):  # Unetconv1 = slim.conv2d(inputs, 32, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv1_1', weights_regularizer=reg)conv1 = slim.conv2d(conv1, 32, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv1_2',weights_regularizer=reg)pool1 = slim.max_pool2d(conv1, [2, 2], padding='SAME')conv2 = slim.conv2d(pool1, 64, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv2_1',weights_regularizer=reg)conv2 = slim.conv2d(conv2, 64, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv2_2',weights_regularizer=reg)pool2 = slim.max_pool2d(conv2, [2, 2], padding='SAME')conv3 = slim.conv2d(pool2, 128, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv3_1',weights_regularizer=reg)conv3 = slim.conv2d(conv3, 128, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv3_2',weights_regularizer=reg)pool3 = slim.max_pool2d(conv3, [2, 2], padding='SAME')conv4 = slim.conv2d(pool3, 256, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv4_1',weights_regularizer=reg)conv4 = slim.conv2d(conv4, 256, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv4_2',weights_regularizer=reg)pool4 = slim.max_pool2d(conv4, [2, 2], padding='SAME')conv5 = slim.conv2d(pool4, 512, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv5_1',weights_regularizer=reg)conv5 = slim.conv2d(conv5, 512, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv5_2',weights_regularizer=reg)up6 = upsample_and_concat(conv5, conv4, 256, 512)conv6 = slim.conv2d(up6, 256, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv6_1',weights_regularizer=reg)conv6 = slim.conv2d(conv6, 256, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv6_2',weights_regularizer=reg)up7 = upsample_and_concat(conv6, conv3, 128, 256)conv7 = slim.conv2d(up7, 128, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv7_1',weights_regularizer=reg)conv7 = slim.conv2d(conv7, 128, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv7_2',weights_regularizer=reg)up8 = upsample_and_concat(conv7, conv2, 64, 128)conv8 = slim.conv2d(up8, 64, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv8_1',weights_regularizer=reg)conv8 = slim.conv2d(conv8, 64, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv8_2',weights_regularizer=reg)up9 = upsample_and_concat(conv8, conv1, 32, 64)conv9 = slim.conv2d(up9, 32, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv9_1', weights_regularizer=reg)conv9 = slim.conv2d(conv9, 32, [3, 3], rate=1, activation_fn=activation_fn, scope='g_conv9_2',weights_regularizer=reg)print("conv9.shape:{}".format(conv9.get_shape()))type='UNet_1X'with tf.variable_scope(name_or_scope="output"):if type=='UNet_3X':#UNet放大三倍conv10 = slim.conv2d(conv9, 27, [1, 1], rate=1, activation_fn=None, scope='g_conv10',weights_regularizer=reg)out = tf.depth_to_space(conv10, 3)if type=='UNet_1X':#输入输出维度相同out = slim.conv2d(conv9, 6, [1, 1], rate=1, activation_fn=None, scope='g_conv10',weights_regularizer=reg)return outdef upsample_and_concat(x1, x2, output_channels, in_channels):pool_size = 2deconv_filter = tf.Variable(tf.truncated_normal([pool_size, pool_size, output_channels, in_channels], stddev=0.02))deconv = tf.nn.conv2d_transpose(x1, deconv_filter, tf.shape(x2), strides=[1, pool_size, pool_size, 1])deconv_output = tf.concat([deconv, x2], 3)deconv_output.set_shape([None, None, None, output_channels * 2])return deconv_outputif __name__=="__main__":weight_decay=0.001reg = slim.l2_regularizer(scale=weight_decay)inputs = tf.ones(shape=[4, 100, 200, 3])out=UNet(inputs,reg)print("net1.shape:{}".format(inputs.get_shape()))print("out.shape:{}".format(out.get_shape()))with tf.Session() as sess:sess.run(tf.global_variables_initializer())

TensorFlow模型实现:UNet模型相关推荐

  1. 语义分割——Unet模型

    语义分割的UNET网络结构 Unet是2015年诞生的模型,它几乎是当前segmentation项目中应用最广的模型. Unet能从更少的训练图像中进行学习,当它在少于40张图的生物医学数据集上训练时 ...

  2. Tensorflow |(5)模型保存与恢复、自定义命令行参数

    Tensorflow |(1)初识Tensorflow Tensorflow |(2)张量的阶和数据类型及张量操作 Tensorflow |(3)变量的的创建.初始化.保存和加载 Tensorflow ...

  3. 如何将tensorflow模型转PYTORCH模型

    将tensorflow版本的.ckpt模型转成pytorch的.bin模型 - 最咸的鱼 - 博客园

  4. Tensorflow 自动文摘: 基于Seq2Seq+Attention模型的Textsum模型

    Github下载完整代码 https://github.com/rockingdingo/deepnlp/tree/master/deepnlp/textsum 简介 这篇文章中我们将基于Tensor ...

  5. Tensorflow: 保存和复原模型(save and restore)

    报错: is not valid checkpoint 解决: module_file = tf.train.latest_checkpoint(diag_obj.save_path) saver.r ...

  6. 【深度学习】带有 CRF-RNN 层的 U-Net模型

    [深度学习]带有 CRF-RNN 层的 U-Net模型 文章目录 1 图像语义分割之FCN和CRF 2 CRF as RNN语义分割 3 全连接条件随机场与稀疏条件随机场的区别 4 CRF as RN ...

  7. TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344 作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,

    TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344  作者简介:汪剑,现在在出门问问负责推荐与个性化.曾在微软雅虎工作,从事 ...

  8. TensorFlow Wide And Deep 模型详解与应用

    Wide and deep 模型是 TensorFlow 在 2016 年 6 月左右发布的一类用于分类和回归的模型,并应用到了 Google Play 的应用推荐中 [1].wide and dee ...

  9. 使用tensorflow serving部署keras模型(tensorflow 2.0.0)

    点击上方"AI搞事情"关注我们 内容转载自知乎:https://zhuanlan.zhihu.com/p/96917543 Justin ho 〉 Tensorflow 2.0.0 ...

最新文章

  1. 硅谷初创公司工资期权调查报告出炉,你羡慕吗?
  2. 杰奇数据库mysql_杰奇模板出现Unable to save result set in…可尝试修复数据库
  3. python常用8大算法
  4. NYOJ 595 乱七八糟
  5. boost::fusion::convert用法的测试程序
  6. Flink 架构:三层架构体系、运行时组件
  7. 脚本实现oracle服务启停,通用服务启停shell脚本
  8. windowblinds 6_过年回家选车很重要!锐骐6强势对比纳瓦拉
  9. Dubbo(十五)springboot工程dubbo整合SpringCloud Hystrix
  10. SOFA 源码分析 —— 服务发布过程
  11. linux创建用户已存在哪里,解决linux下创建用户时出现 Creating mailbox file: 文件已存在...
  12. pycharm开启鼠标滚动调节字体大小
  13. Linux Command - alien
  14. 测绘的真正出路在于什么?
  15. yaml 变量引用_yaml语法
  16. linux中磁盘清理方法(简单好用)
  17. java里面的环链怎么做_Java模式开发之责任链模式
  18. Andorid IData95手持设备开发过程
  19. stream流的应用与并行流
  20. Python网络爬虫(6)--爬取淘宝模特图片

热门文章

  1. PHP__call __callStatic
  2. MySQL 存储引擎
  3. mybatis02--增删改查
  4. HDU5670Machine(抽象进制)
  5. MVC4.0网站发布和部署到IIS7.0上的方法
  6. 正则表达式 (re包)——python(快餐)
  7. C#面向对象--继承
  8. web项目的两个创建形式website和webapplication
  9. a data source instance has not been supplied for the datasource 'dataset1'. rdlc
  10. 数据类型,运算符和表达式02 - 零基础入门学习C语言03