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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
tensorflow实现KNN识别MNIST
Mar 12 Python
Python中dict和set的用法讲解
Mar 28 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
Python Collatz序列实现过程解析
Oct 12 Python
Python中url标签使用知识点总结
Jan 16 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
Python Map 函数的使用
Aug 28 Python
Python绘制K线图之可视化神器pyecharts的使用
Mar 02 Python
Django模型层实现多表关系创建和多表操作
Jul 21 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/17 PHP
深入PHP FTP类的详解
2013/06/13 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
sae使用smarty模板的方法
2013/12/17 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
python3中bytes和string之间的互相转换
2017/02/09 Python
Python 数据结构之旋转链表
2017/02/25 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
python实现转圈打印矩阵
2019/03/02 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
海淘母婴商城:国际妈咪
2016/07/23 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
在校大学生个人的自我评价
2014/02/13 职场文书
先进事迹材料怎么写
2014/12/30 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS