tensorflow对图像进行拼接的例子


Posted in Python onFebruary 05, 2020

tensorflow对图像进行多个块的行列拼接tf.concat(), tf.stack()

在深度学习过程中,通过卷积得到的图像块大小是8×8×1024的图像块,对得到的图像块进行reshape得到[8×8]×[32×32],其中[8×8]是图像块的个数,[32×32]是小图像的大小。通过tf.concat对小块的图像进行拼接。

-在做图像卷积的过程中,做了这样一个比较麻烦的拼接,现在还没想到更好的拼接方法,因为是块拼接,开始的时候使用了reshape,但是得到的结果不对,需要确定清楚数据的维度,对于数据的维度很是问题。

import tensorflow as tf
def tensor_concat(f, axis):
 x1 = f[0, :, :]
 for i in range(1, 8):
  x1 = tf.concat([x1, f[i, :, :]], axis=axis)
 return x1

def block_to_image(f): 
 x1 = tf.reshape(f, [64, 1024])
 x1 = tf.reshape(x1, [64, 32, 32])
 m2 = tensor_concat(x1[0:8, :, :], axis=1)
 for i in range(1, 8):
  m1 = tensor_concat(x1[i*8:(i+1)*8, :, :], axis=1)
  m2 = tf.concat([m2, m1], axis=0)
 x2 = tf.reshape(m2, [256, 256, 1])
 return x2

x = tf.random_normal([ 8, 8, 1024])
with tf.Session() as sess:
 m = sess.run(x)
 m1 = sess.run(block_to_image(m))

最后通过行拼接和列拼接得到图像大小为256×256×1大小的图像。

对[batch_size, height, weight, channel] 的图像进行1一样的图像块拼接:

在深度神经网络中,会有batch_size个图像大小[256×256×1]的图像进行块的拼接,对于多了一个维度的图像拼接起来,由[batch_size, 8, 8, 1024]拼接为[batch_size,256, 256, 1]。在做着部分时batch_size这部分实在是不知道怎么处理,所以还是用了本办法,使用的函数是append和tf.stack()

def tensor_concat(f, axis):
 x1 = f[0, :, :]
 for i in range(1, 8):
  x1 = tf.concat([x1, f[i, :, :]], axis=axis)
 return x1

def block_to_image(f):
 x3 =[]
 for k in range(f.shape[0]):
  x = f[k, :, :, :]
  x1 = tf.reshape(x, [64, 1024])
  x1 = tf.reshape(x1, [64, 32, 32])
  m2 = tensor_concat(x1[0:8, :, :], axis=1)
  for i in range(1, 8):
   m1 = tensor_concat(x1[i*8:(i+1)*8, :, :], axis=1)
   m2 = tf.concat([m2, m1], axis=0)
  x2 = tf.reshape(m2, [256, 256, 1])
  x3.append(x2)
  x4 = tf.stack(x3)
 return x4 
x = tf.random_normal([10, 8, 8, 1024])
with tf.Session() as sess:
 m = sess.run(x)
 m1 = sess.run(block_to_image1(m))

在学习过程中对tensor不能直接赋值,比如不能写:

x2 = tf.reshape(m2, [256, 256, 1]) 

x3[k, :, :, 1] = x2

这样的代码,会出现错误:'Tensor' object does not support item assignment

对于带有类似索引的赋值,参考的办法是:

x3 = [] 

x3.append(x2)

这时候得到的是list的格式,所以接下来将list转化为array,使用的是tf.stack(x3)

以上这篇tensorflow对图像进行拼接的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 Python
Python中处理字符串的相关的len()方法的使用简介
May 19 Python
python读取Excel实例详解
Aug 17 Python
python多进程控制学习小结
Oct 31 Python
Python中Unittest框架的具体使用
Aug 27 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
Python socket非阻塞模块应用示例
Sep 12 Python
pandas 空数据处理方法详解
Nov 02 Python
Python使用Turtle库绘制一棵西兰花
Nov 23 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
django ajax发送post请求的两种方法
Jan 05 Python
如何利用python创作字符画
Jun 25 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 #Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 #Python
基于Tensorflow批量数据的输入实现方式
Feb 05 #Python
Python操作注册表详细步骤介绍
Feb 05 #Python
Python类继承和多态原理解析
Feb 05 #Python
Python模块 _winreg操作注册表
Feb 05 #Python
python3操作注册表的方法(Url protocol)
Feb 05 #Python
You might like
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
js判断是否是手机页面
2017/03/17 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
python 生成器和迭代器的原理解析
2019/10/12 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
python中什么是面向对象
2020/06/11 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
见习期自我鉴定
2013/11/07 职场文书
高三自我评价
2014/02/01 职场文书
法律意见书范本
2015/06/04 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
Python基础详解之邮件处理
2021/04/28 Python
解决Python字典查找报Keyerror的问题
2021/05/26 Python
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
Python matplotlib绘制雷达图
2022/04/13 Python