[問題] Tensorflow取weights

看板Python作者時間6年前 (2018/11/16 12:30), 6年前編輯推噓2(208)
留言10則, 5人參與, 6年前最新討論串1/1
大家好 我正在FPGA上寫一個電路,要用它來做機器學習的預測 但是我只會寫電路,對Python還有機器學習的認識很淺QQ 其中需要使用Tensoeflow來產生一些參數和驗證 我參考了這個網站來訓練神經元 https://www.tensorflow.org/tutorials/keras/basic_classification 以下是我的部份程式碼 想請問要如何從這個model中取出weights? model = keras.Sequential([ keras.layers.MaxPooling1D(pool_size=2, strides=2, padding='valid', input_shape=(28,28)), keras.layers.Flatten(), keras.layers.Dense(196, activation=tf.nn.relu), keras.layers.Dense(10, activation=tf.nn.softmax) ]) model.compile(optimizer=tf.train.AdamOptimizer(), loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(train_images, train_labels, epochs=5) 因為電路的限制,input沒辦法用28*28,所以我加了一個MaxPool 讓input 縮小為14*14,我知道MaxPool可能不適合這樣用QQ 也想問問有沒有其他比較適合的方法 我希望可以從程式碼中取出weights,可以讓我直接用到電路裡 我找到了一個function如下 for layer in model.layers: weights = layer.get_weights() 取出的weights[0]是196*10的Array,內容都是正負0.0x 的數字 weights[1]則是1*10的Array 我把weights[0]當作是這個model產生的weights實現到電路中 但結果是錯的,而且每次產生的weight放進去結果都不一樣 所以我在想是不是我取出的weight並不是model最後使用的呢QQ 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 131.212.248.181 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1542342654.A.EA3.html

11/16 12:52, 6年前 , 1F
你有train?
11/16 12:52, 1F
model.fit(train_images, train_labels, epochs=5) 有的,這行應該是train吧 ※ 編輯: chinsun (131.212.248.181), 11/16/2018 13:36:35

11/16 13:57, 6年前 , 2F
喔我的意思是在keras上train出來的東西是對的?
11/16 13:57, 2F
是對的!準確度有0.88,對我來說夠用了 ※ 編輯: chinsun (131.212.248.181), 11/16/2018 14:08:45

11/16 14:56, 6年前 , 3F
你有把relu和softmax實作進去嗎?
11/16 14:56, 3F

11/16 15:03, 6年前 , 4F
請問實作進去是指什麼意思呢?我以為model= 那邊寫進去,
11/16 15:03, 4F

11/16 15:03, 6年前 , 5F
compile就會執行到了
11/16 15:03, 5F

11/16 15:08, 6年前 , 6F
應該是我搞錯了 我以為電路裡面不是用python,而是用其
11/16 15:08, 6F

11/16 15:08, 6年前 , 7F
他語言自己實作
11/16 15:08, 7F

11/16 16:19, 6年前 , 8F
這個weights 看來沒問題 我覺得問題應該出在其他地方
11/16 16:19, 8F

11/16 16:20, 6年前 , 9F
不然你可以確認看看這個取出來的矩陣平均值和標準差
11/16 16:20, 9F

11/17 07:02, 6年前 , 10F
weights[1]是bias 要放吧?
11/17 07:02, 10F
文章代碼(AID): #1RxaV-wZ (Python)
文章代碼(AID): #1RxaV-wZ (Python)