Не удалось десериализовать класс 'Functional'
Я сделал трансферное обучение для модели VGG16, чтобы классифицировать изображения на кошку или собаку, и вот часть фрагмента кода :
prediction_layer = tf.keras.layers.Dense(1)
prediction_batch = prediction_layer(feature_batch_average)
def manual_preprocess_input(x, data_format=None):
if data_format is None:
data_format = tf.keras.backend.image_data_format()
if data_format == 'channels_first':
# If channels are first, move them to the last dimension
x = tf.transpose(x, perm=[0, 2, 3, 1])
# Mean subtraction (ImageNet means in BGR order)
mean = [103.939, 116.779, 123.68]
x = x - tf.constant(mean, dtype=x.dtype)
# Zero-centering by subtracting 127.5
x = x / 127.5
return x
inputs = tf.keras.Input(shape=(224, 224, 3))
x = data_augmentation(inputs)
x = manual_preprocess_input(
x
)
x = base_model(x, training=False)
x = global_average_layer(x)
x = tf.keras.layers.Dropout(0.2)(x)
outputs = prediction_layer(x)
model = tf.keras.Model(inputs, outputs)
и вот код представления, в котором я загрузил свою модель :
Затем я сохранил ее с помощью model.save('my_model.keras'), после чего загрузил в django view, но проблема в том, что всякий раз, когда я загружаю ее и делаю post-запрос к view, в строке, где я загружаю модель, возникает эта ошибка :
def testSkinCancer(request):
model = tf.keras.models.load_model(
os.getcwd()+r'\media\my_model.keras', safe_mode=False)
print(">>> model loaded")
if not request.FILES:
return HttpResponseBadRequest(json.dumps({'error': 'No image uploaded'}))
# Access the uploaded image directly
uploaded_image = request.FILES['image']
username = request.POST['username']
user = User.objects.get(username=username)
# Save the image to the database
image_model = SkinImage.objects.create(user=user, image=uploaded_image)
img_path = r'images/{0}'.format(uploaded_image)
img = keras.utils.load_img(img_path, target_size=(224, 224))
x = keras.utils.img_to_array(img)
x = np.expand_dims(x, axis=0)
predictions = model.predict(x)
# You can perform additional processing here (e.g., resize, convert format)
# Optionally, return a response to the client
response_data = {'message': 'Image uploaded successfully'}
return JsonResponse(response_data)
TypeError: Не удалось десериализовать класс 'Functional', поскольку его родительский модуль keras.src.models.functional не может быть импортирован. В чем проблема. Я ожидал, что модель загрузится корректно