Я пытаюсь получить идеальный вход для определенного класса данных imagenet. Я использую keras inceptionv3, инициализированный с весами imagenet. Я также установил пользовательский тензор, который случайным образом инициализируется в качестве входных данных. Я установил все слои как не обучаемые, кроме входных. Вот код:
from keras.applications.inception_v3 import InceptionV3
from keras.layers import Input
import keras
import keras.backend as K
# this could also be the output a different Keras model or layer
inp = K.random_uniform_variable(shape=(1, 224, 224, 3), low=0, high=1) # Uniform distribution
# input_tensor = Input(shape=(1, 224, 224, 3), tensor=inp) # this assumes K.image_data_format() == 'channels_last'
model = InceptionV3(input_tensor=inp, weights='imagenet', include_top=True)
for layer in model.layers:
layer.trainable = False
input_layer = model.layers[0]
input_layer.trainable = True
model.compile(optimizer='sgd', loss='sparse_categorical_crossentropy')
history = model.fit(y=[0], batch_size=1, epochs=50, verbose=1)
после запуска вышеуказанного скрипта потеря всегда остается той же 6.901. Есть идеи, что я тут не так делаю?