1. 程式人生 > >Deep Learning實踐中報錯查詢手冊(持續更新)

Deep Learning實踐中報錯查詢手冊(持續更新)

ResourceExhaustedError: OOM when allocating tensor with shape

在使用keras訓練模型時報錯,問題原因:

GPU視訊記憶體不足,解決方案有:
1. 終端使用nvidia-smi命令檢視顯示卡狀態,將其他佔用程序kill掉。
2. 將訓練的batch_size調小

MemoryError

在將資料歸一化時報錯,問題原因:

資料size過大((10000,224,224,3)),歸一化時需要轉化成浮點數,每個資料佔用位元組16,共需要記憶體16x10000x224x224x3

解決方案:
分批次匯入資料

EOFError: Ran out of input

pickle.load(filename) 匯入資料報錯。

在終端使用

ls -l|grep "filename" 

檢視後發現該檔案是空的,故報錯。

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x80 in position 0: invalid start byte

使用pickle.load()時候報錯,原因是讀取檔案時要加上檔案的許可權引數:‘rb’ 或者 ‘wb’

# load data
import pickle
with open("/to/file","rb") as file1:
    my_data = pickle.load(file1)

TypeError: only integer scalar arrays can be converted to a scalar index

使用numpy.concatenate()函式時報錯,錯誤原因:

y1 = np.repeat(0.0,50)
y2 = np.repeat(1.0,50)
y_vals = np.concatenate(y1,y2)

y1,y2遺漏了括號
concatenate((a1, a2, …), axis=0)

FailedPreconditionError: Attempting to use uninitialized value Variable/Momentum

使用tensorflow.train的優化器時候報錯,因為部分優化器引入了新的變數,需要初始化。
初始化宣告

init = tf.initialize_all_variables()
sess.run(init)

只初始化當前圖已建立的變數,即在該宣告之前建立的變數。
將初始化宣告移動到優化器之後即可。

ValueError: Tensor A must be from the same graph as Tensor B

當前tensorflow計算圖有多個圖,需要重新reset圖。按如下步驟:
1、重新啟動python終端
2、在程式碼前新增:

tf.reset_default_graph()

或者

from tensorflow.python.framework import ops
ops.reset_default_graph()