sess.run 問題
請問老師 sess.run 問題 :
1.我分別在 colab 與 我的電腦上跑一樣的code, 當執行到底下這段 sess.run 時, 我分別用 nvidia-smi 觀察 GPU記憶體, 為何 GPU 所佔的記憶體大小不一樣 ?
2.我的電腦是已啟用 CUDA, GPU記憶體有 2G, 我的電腦GPU記憶體應該不夠, 但為何沒提示GPU記憶體不夠的 error, 而可以繼續跑完 code ?
(1) 在 colab 用 nvidia-smi 觀察 GPU記憶體使用了8G, 如下 :
(2) 在 我的電腦用 nvidia-smi 觀察 GPU記憶體只佔了64M (感覺好像沒動作), 如下 :
(3) code 如下 :
(3.1)
#輸入網絡架構的參數檔
saver.restore(sess, 'models/pretrain/yolo_tiny.ckpt')
#開啟對話,進行預測
np_predict = sess.run(predicts, feed_dict={image: np_img})
(3.2)
print("預測結果和標記框的損失量")
with tf.Session() as sess1:
print(sess1.run(output_loss))
回答列表
-
2020/01/15 上午 10:19Jeffrey贊同數:0不贊同數:0留言數:0
-
2020/01/15 上午 10:30楊哲寧贊同數:0不贊同數:0留言數:2
您好,64Mb應該是只有載入權重,但Input images沒有變成GPU的tensor經過模型,可以測試一下兩者inference 的速度是否相同。
-
2020/01/15 下午 06:08胡連福贊同數:0不贊同數:0留言數:0
再試過一次:
1.程式跑到 saver.restore(sess, 'models/pretrain/yolo_tiny.ckpt') 這一行時, 在我的電腦出現如圖所示的錯誤, 但在colab可以跑過(跑過這一行後, 用 nivdia-smi 觀察記憶體只用了 265 MB)
InvalidArgumentError: Cannot assign a device for operation random_normal/RandomStandardNormal: {{node random_normal/RandomStandardNormal}} was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0 ]. Make sure the device specification refers to a valid device.
[[random_normal/RandomStandardNormal]]2.我有檢查我的電腦 GPU 有正常啟用 -> /device:GPU:0, 且有 2GB 大小, 不應該在載入網路參數時出錯才對? (用colab試GPU才佔了265M)
請問這是GPU的什麼錯誤 ? 要用什麼方式排除錯誤 ?