在訓練unet模型時,發現**結果和真實結果幾乎完全差距太大,想著列印每層輸出的結果檢視問題在哪?但是發現kears只是提供了訓練完成後在模型測試時輸出每層的函式。並沒有提供訓練時的函式,同時本著不對原有**進行太大改動。最後實現了這個方法。即新建乙個輸出節點新增到現有的網路結構裡面。
#新建乙個列印層。
class
printlayer
(layer)
:#初始化方法,不須改變
def__init__
(self,
**kwargs)
:super
(printlayer, self)
.__init__(
**kwargs)
#呼叫該層時執行的方法
defcall
(self, x)
: x = tf.print(x,
[x],message=
"x is: "
,summarize=
65536
)#呼叫tf的print方法列印tensor方法,第乙個引數為輸入的x,第二個引數為要輸出的引數,summarize引數為輸出的元素個數。
return x;
#一定要返回tf.print()函式返回的變數,不要直接使用傳入的變數。
#接著在網路中引入
conv9 = conv2d(2,
3, activation =
'relu'
, padding =
'same'
, kernel_initializer =
'he_normal'
)(conv9)
print11 = printlayer(
)(conv9)
conv10 = conv2d(1,
1, activation =
'sigmoid'
)(print11)
#printlayer層處理的結果一定要在下一層用到,不然不會列印tensor。該結點可以加在任何結點之間。
JS中如何輸出空格
js中如何輸出空格 在寫js 的時候,大家可以會發現這樣現象 document.write 1 2 3 結果 1 2 3 無論在輸出的內容中什麼位置有多少個空格,顯示的結果好像只有乙個空格。這是因為瀏覽器顯示機制,對手動敲入的空格,將連續多個空格顯示成1個空格。解決方法 1.使用輸出html標籤 來...
JS中如何輸出空格
在寫js時會有這種情況發生 無論在輸出的內容中什麼位置有多少個空格,顯示的結果中只有乙個空格。這是因為瀏覽器顯示機制,對手動敲入的空格,將連續多個空格顯示成1個空格。輸入 document.write 1 2 3 輸出 1 2 3解決方案 1.使用輸出html標籤來解決 document.write...
JS中如何輸出空格
在寫js 的時候,大家可以會發現這樣現象 document.write 1 2 3 結果 1 2 3 無論在輸出的內容中什麼位置有多少個空格,顯示的結果好像只有乙個空格。這是因為瀏覽器顯示機制,對手動敲入的空格,將連續多個空格顯示成1個空格。解決方法 1.使用輸出html標籤 來解決 documen...