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之模拟鼠标键盘动作具体实现
Dec 30 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
浅析Python数据处理
May 02 Python
python根据url地址下载小文件的实例
Dec 18 Python
Python 的AES加密与解密实现
Jul 09 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
python getopt模块使用实例解析
Dec 18 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
python图片验证码识别最新模块muggle_ocr的示例代码
Jul 03 Python
如何在python中处理配置文件代码实例
Sep 27 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 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缓存设计实现代码
2011/09/30 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
php 可变函数使用小结
2018/06/12 PHP
js网页实时倒计时精确到秒级
2014/02/10 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
pygame学习笔记(4):声音控制
2015/04/15 Python
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
浅谈Python type的使用
2019/11/19 Python
np.random.seed() 的使用详解
2020/01/14 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
python类共享变量操作
2020/09/03 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
七一党建活动方案
2014/01/28 职场文书
高中军训第一天感言
2014/03/06 职场文书
民族学专业求职信
2014/07/28 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS