遇到的各類報錯彙總查用

錯誤:

from keras.layers import merge
# 然後調用merge(),報錯
TypeError: 'module' object is not callable(不可調用)

原因: Keras在2.1.6版本後去除了merge()

查看Keras版本pip show keras

解決方案: 就是將keras版本回退到2.1.6或之前的版本
修改版本:pip install keras==2.1.6 (修改到2.1.6)


錯誤:

`validation_steps=None` is only valid for a generator based on the 
`keras.utils.Sequence.Please specify `validation_steps` or 
use the `keras.utils.Sequence` class.

原因: 數據量過少,而Batch_Size大,導致計算的validation_steps一直爲0。
解決方案: 可以縮小Batch_Size,或者直接指定validation_steps值,我的縮小Batch_size也沒用,檢查發現是因爲數據劃分出錯導致測試集爲空,更正後就行了。


報錯:

TypeError: 'range' object does not support item assignment

原因: range() 返回的是“range object”,而不是實際的list 值。

解決方案:
shuffle_index = range(self.nb_train)
改爲:
shuffle_index = list(range(self.nb_train))


錯誤:

ImportError: cannot import name 'izip'

原因: python3裏的zip就相當於python2 itertools裏的izip

解決方案:

# from itertools import izip	註釋掉
izip = zip

錯誤:

zip' object has no attribute 'sort'

原因: zip()在Python 3中返回迭代器 ; 當從中請求元素時,輸入將被壓縮。迭代器不可排序
解決方案:
可以使用sorted() “繪製”元素並從中返回排序列表
如將:

 ziped = zip(y_true[i], y_priord[i])
 ziped.sort(key=lambda x: x[1], reverse=True)

更正爲:

 ziped = sorted( zip(y_true[i], y_priord[i]) , key=lambda x: x[1], reverse=True )

詳見StackOverflow回答


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章