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虚拟环境virtualenv的安装与使用详解
May 28 Python
python下载图片实现方法(超简单)
Jul 21 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python发展简史 Python来历
May 14 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
Mar 10 Python
Python实现AI换脸功能
Apr 10 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
php桌面中心(三) 修改数据库
2007/03/11 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
js创建数组的简单方法
2016/07/27 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
React组件生命周期详解
2017/07/03 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
python友情链接检查方法
2015/07/08 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
南京青奥会口号
2014/06/12 职场文书
安全生产月标语
2014/10/07 职场文书
正规欠条模板
2015/07/03 职场文书
六年级作文之关于梦
2019/10/22 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python