[英]How do I debug keras model
我正在閱讀手寫文本識別教程。 為了進行手寫數字識別,作者構建了一個 Keras model 如下:
# # Creating CNN model
input_shape = (28,28,1)
number_of_classes = 10
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPool2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(number_of_classes, activation='softmax'))
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adadelta(),metrics=['accuracy'])
model.summary()
history = model.fit(X_train, y_train,epochs=5, shuffle=True,
batch_size = 200,validation_data= (X_test, y_test))
model.save('digit_classifier2.h5')
來源( 這里)
我很困惑作者是如何選擇這些層的。 我知道Conv2D
如何通過對圖像應用過濾器來工作,我知道什么是activation function
。 簡而言之,我對每個術語的含義有一個粗略的理解。
我發現困難的是我怎么知道這段代碼的每一步發生了什么? 例如,讓我們使用這個 python 代碼:
values_List=[11,34,43]
for index, num in enumerate(values_List):
print(index,num)
此 python 代碼易於理解和調試。 但我很困惑,如果 keras 層內有任何錯誤。 如何繼續調試此 Keras 代碼? 如何在 Keras 代碼內的每個步驟中看到 output?
簡而言之,您不能在 Keras 中輕松調試,因為它是高級 API,用於使用預定義的層和函數更快、更輕松地實現神經網絡架構,這些層或 ZC1C425268E68384F145A 內部出錯的可能性較小。測試良好。
如果您想對您進行更細粒度的控制,您需要在低級 API 中實現,如 Tensorflow v1 或在 Z074DD699710DA70EC1EB45F13E3 中使用tf.GradientTape
和 tf-keras 在每個 step.8 的梯度。
您還可以嘗試 Microsoft 的 Tensorwatch,以更深入地了解您的 model - https://github.com/microsoft/tensorwatch
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.