Это скорее «проблема», а не вопрос, но я кое-что заметил сегодня, когда пытался перенести обучение с использованием Keras. Я обнаружил, что модель InceptionV3 и предварительно обученные веса в хранилище Франсуа Шоле отличаются от Kaggle one . Я проверил это с помощью команды diff
. Мало того, что когда я использую кодовый блок, как показано ниже -
from keras.applications.inception_v3 import InceptionV3
Inception_pretrained_weight = '../pre_weight/inception_v3_weights_tf_dim_ordering_tf_kernels_chollet.h5'
pre_trained_model = InceptionV3(input_shape=(160, 160, 3),
include_top=False,
weights=Inception_pretrained_weight)
for lr in pre_trained_model.layers:
lr.trainable = False
for layr in pre_trained_model.layers:
print("layer names: ", layr.name)
, я получаю ошибку как -
ValueError: Layer #0 (named "conv2d_753" in the current model) was found to correspond to layer convolution2d_1 in the save file. However the new layer conv2d_753 expects 1 weights, but the saved weights have 2 elements.
Этого не происходит с моделью, доступной на Kaggleстр. Кто-нибудь еще это заметил? Кто-нибудь знает как и почему эти модели отличаются? Я нашел другой пост по этому вопросу - здесь , но это не очень помогает. Мы ценим любые предложения.