簡體   English   中英

TensorFlow網絡沒有培訓?

[英]TensorFlow network not training?

我和TensorFlow在最后幾天度過了一段非常奇怪的時光,並且無法想象atm會出現什么問題。

我建立了這個網絡: 鏈接 它是TensorFlow的MNIST示例的副本。

基本上,我所做的是改變網絡,從28x28x1圖像(MNIST灰度)到600x800x1圖像(我自己拍攝的一些圖像,背景相對干凈的網絡攝像頭和不同位置的一個對象)。

我想要做的就是玩這樣的CNN並讓它輸出圖像中對象的x位置。 所以單輸出神經元。

但是,無論我嘗試什么,網絡總是輸出1.0。 甚至(當你在代碼末尾看我的測試部分時)我將所有的,全部為零或所有隨機數輸入網絡。

當然,由於我只有21個標記的訓練和7個標記的測試圖片,我預計性能非常差(因為800x600像素圖像對於神經網絡來說是巨大的並且定位對象並不容易)。

...但我完全不知道為什么網絡總是輸出1.0,即使它是無意義的。 有任何想法嗎?

查看源代碼,似乎在softmax之前的最終完全連接層( 您共享的代碼中的 L.104)在計算softmax之前將每個示例縮減為單個輸出類 由於每個示例只有一個類,因此tf.nn.softmax() op( y_conv )的結果將是每個元素中包含1.0的batch_size x 1矩陣,並且其中的tf.argmax()將包含0對於每個元素,因為只有一個值。 類似地,將tf.argmax()應用於y_train(這是一個batch_size x 1矩陣)將為每個元素產生0,因此“准確度”將為100%。

要解決這個問題,你應該(i)將最終完全連接層的輸出單元數增加為類的數量,並且(ii)將每行y_train編碼為表示每個示例的真實類的單熱矢量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM