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 相关文章推荐
Python装饰器入门学习教程(九步学习)
Jan 28 Python
python模拟事件触发机制详解
Jan 19 Python
用python实现百度翻译的示例代码
Mar 09 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
Dec 10 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
利用python如何在前程无忧高效投递简历
May 07 Python
PyQt5 多窗口连接实例
Jun 19 Python
numpy数组广播的机制
Jul 12 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 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的Socket网络编程入门指引
2015/08/11 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
python正则实现计算器功能
2017/12/14 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
python调用接口的4种方式代码实例
2019/11/19 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
python全栈开发语法总结
2020/11/22 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
会计学专业学生的求职信范文
2014/01/27 职场文书
同学会主持词
2014/03/18 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
英文推荐信格式范文
2014/05/09 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js
Mysql中mvcc各场景理解应用
2022/08/05 MySQL