91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

tensorflow如何對圖像進行拼接

發布時間:2021-07-26 14:07:44 來源:億速云 閱讀:127 作者:小新 欄目:開發技術

小編給大家分享一下tensorflow如何對圖像進行拼接,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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如何對圖像進行拼接”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荃湾区| 长泰县| 平阴县| 建水县| 鄯善县| 五家渠市| 富宁县| 梁河县| 兴宁市| 河北省| 宁安市| 龙山县| 明星| 牡丹江市| 潼南县| 革吉县| 通道| 高邮市| 桂阳县| 宣威市| 岑巩县| 冀州市| 抚松县| 泸西县| 紫金县| 宜阳县| 阳朔县| 静宁县| 镇康县| 平和县| 清水河县| 淮北市| 伊金霍洛旗| 霍林郭勒市| 五常市| 龙门县| 新邵县| 漳州市| 赤城县| 双桥区| 沈阳市|