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 时间处理datetime实例
Sep 06 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
python之信息加密题目详解
Jun 26 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
Python列表list操作相关知识小结
Jan 29 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
Python代码需要缩进吗
Jul 01 Python
教你用python控制安卓手机
May 13 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
fgetcvs在linux的问题
2012/01/15 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
Python 3.x 新特性及10大变化
2015/06/12 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
python tkinter控件布局项目实例
2019/11/04 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
如何解决python多种版本冲突问题
2020/10/13 Python
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
市场部业务员岗位职责
2014/04/02 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript