我想從頭開始重新訓(xùn)練 Keras 模型 Inception_v3。該模型在這里定義: https ://github.com/keras-team/keras-applications/blob/master/keras_applications/inception_v3.py看了一些帖子,列出的解決方案是:凍結(jié)圖層(這不是我想要的......)for layer in model.layers: layer.trainable = Falsehttps://stackoverflow.com/a/51727616/7748163通過檢查初始化器來重置所有層:def reset_weights(model): session = K.get_session() for layer in model.layers: if hasattr(layer, 'kernel_initializer'): layer.kernel_initializer.run(session=session) if hasattr(layer, 'bias_initializer'): layer.bias_initializer.run(session=session) 采用tf.variables_initializer model = InceptionV3() for layer in model.layers: sess.run(tf.variables_initializer(layer.weights))參考:https ://stackoverflow.com/a/56634827/7748163我認(rèn)為最好的一個(gè),但它引發(fā)了一個(gè)錯(cuò)誤。sess = tf.Session()for layer in model.layers: for v in layer.__dict__: v_arg = getattr(layer,v) if hasattr(v_arg,'initializer'): initializer_method = getattr(v_arg, 'initializer') initializer_method.run(session=sess) print('reinitializing layer {}.{}'.format(layer.name, v))但是,它們都不適用于 Inception_v3。錯(cuò)誤信息適用于 BatchNorm 層:tensorflow.python.framework.errors_impl.FailedPreconditionError: Error while reading resource variable batch_normalization_9/moving_mean from Container: localhost. This could mean that the variable was uninitialized. Not found: Resource localhost/batch_normalization_9/moving_mean/N10tensorflow3VarE does not exist. [[{{node batch_normalization_9_1/AssignMovingAvg/ReadVariableOp}}]] [[metrics_1/categorical_accuracy/Identity/_469]]那么,如何重新訓(xùn)練現(xiàn)有的 Keras 模型,并初始化變量呢?從 Keras 應(yīng)用程序重新訓(xùn)練模型的最佳實(shí)踐是什么?進(jìn)一步討論:https://github.com/keras-team/keras/issues/341
1 回答

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
為什么不簡(jiǎn)單地不要求重量?
model = Inception_V3(..., weights=None,...)
添加回答
舉報(bào)
0/150
提交
取消