代碼MLSP調試記錄

代碼地址:

https://github.com/subpic/ava-mlsp

目的:

根據作者論文實現代碼結果

過程:

問題1:

from keras import backend as K
K.set_image_dim_ordering("tf")

error: K has no attribute "set_image_dim_ordering"

keras中未包含“set_image_dim_ordering"屬性,而此屬性是用於設置keras後端的數據維度順序,
即將keras的數據維度順序設置爲tensflow的格式。

  • 解決方法
    安裝版本爲1.13., 將keras版本升級到2.1.6,問題解除。

問題2:

x = apps.inception_block(input_feats, size=1024)

Value error: value input is float32, but allowed type is int32, int64

輸入數據中inception_block模塊的branch3*3中shape未使用int型.

  • 解決方法
    在size/2前面加上int就行:int(size/2)

問題3:
model path問題
下載的mlsp_wide_best_weight.h文件放在對應路徑即可,文件大小250M

  • 解決方法
    root_path + 'ava-mlsp-master/models/irnv2_mlsp_wide_orig/model_best_weights.h5‘

問題4:

helper.model問題
讀取測試集合時出現:‘pandas’ has no attribute '__dict__'

主要原因在於,讀取csv文件數據爲pandas時,並沒有__dict__方法可用,直接使用對應元祖的索引序號提取對應測試集圖片,可得到測試結果。 將讀取數據對應部分改爲 :

row.__dict__.intput_name改爲:
row[15]

最終得到測試結果:

Evaluated on test-set
SRCC/PLCC: 0.752 0.755
ACCURACY: 0.816087916499

數據分佈圖如下:
預測值和真實值的分佈結果

總結:

  • 作者代碼大部分是藉助於keras和tensorflow開源代碼完成工作,不需要從頭開始,提高實現idea效率
  • 作者寫的代碼十分嚴謹,從每個函數的功能聲明到數據的生成和可視化,構成一個完整的系統。
  • 在實現完成所需功能後,還將通用函數形成庫函數作爲keras基礎上的功能包開源,是有效提高代碼效率的方式之一。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章