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正则表达式常用函数总结
Jun 24 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
python3实现基于用户的协同过滤
May 31 Python
python实现简单名片管理系统
Nov 30 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
python异常处理和日志处理方式
Dec 24 Python
Python接口测试get请求过程详解
Feb 28 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
简单的命令查看安装的python版本号
Aug 28 Python
python 如何区分return和yield
Sep 22 Python
python numpy中multiply与*及matul 的区别说明
May 26 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 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
javascript add event remove event
2008/04/07 Javascript
js 表单验证方法(实用)
2009/04/28 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
浅谈python之新式类
2018/08/12 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
html5 学习简单的拾色器
2010/09/03 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
函授教育个人学习的自我评价
2013/12/31 职场文书
单位消防安全制度
2014/01/12 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
小摄影师教学反思
2014/04/27 职场文书
介绍长城的导游词
2015/01/30 职场文书
防汛通知
2015/04/25 职场文书
装修公司管理制度
2015/08/05 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python