Код: Выделить всё
import functions_framework
import io
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import load_model
from PIL import Image
model = load_model("gs:///cifar10_model.keras")
class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
def preprocess_image(image_file):
img = Image.open(io.BytesIO(image_file.read()))
img = img.resize((32, 32))
img = np.array(img)
img = img / 255.0
img = img.reshape(1, 32, 32, 3)
return img
@functions_framework.http
def predict(request):
image = preprocess_image(request.files['image_file'])
print(image.shape) # this prints OK
prediction = model.predict(image)
print(prediction) # this never prints
predicted_class = class_names[np.argmax(prediction)]
return f"Predicted class: {predicted_class}"
Хотя минимальная вычислительная конфигурация должна работать, я пробовал зарезервировать больше памяти и процессора, но ничего не помогло. Модель размещена на Storage, я сначала попробовал ее скачать, но тоже не получилось. Я также попытался сделать прогноз внутри контекста tf.device('/cpu:0'), передав параметр Step=1 и сначала преобразовав массив изображений в набор данных Keras, как предложено ChatGPT, с теми же результатами. На самом деле в результате вызова Predict вообще ничего не печатается. Вызов вызова вместо прогнозирования ни к чему не привел.
Что мне не хватает?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -functions