錯誤:
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 )