У меня есть модель сгенерированная и обученная кодом:
import tensorflow as tf
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
from keras.datasets import mnist
# Определяем параметры модели
batch_size = 32
epochs = 10
image_height = 28
image_width = 28
num_classes = 10
# Загружаем данные
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# Создаем модель
model = tf.keras.Sequential([
Conv2D(32, kernel_size=(3, 3), activation="relu", input_shape=(image_height, image_width, 1)),
MaxPooling2D(pool_size=(2, 2)),
Flatten(),
Dense(128, activation="relu"),
Dense(num_classes, activation="softmax")
])
# Компилируем модель
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
# Обучаем модель
model.fit(x_train, y_train, epochs=epochs, batch_size=batch_size)
# Оцениваем модель
model.evaluate(x_test, y_test)
# Сохраняем модель
model.save("models/my_model.h5")
И код для генерации текста:
import tensorflow as tf
from keras.models import load_model
from keras.preprocessing.text import Tokenizer
# Загружаем модель
model = load_model("models/my_model.h5")
# Ввод текста
text = input("Введите текст: ")
# Токенизация текста
tokenizer = Tokenizer()
tokenizer.fit_on_texts([text])
sequence = tokenizer.texts_to_sequences([text])[0]
# Дополнение последовательности
MAX_LENGTH = 50 # Замените на желаемую длину
sequence = tf.keras.preprocessing.sequence.pad_sequences([sequence], maxlen=MAX_LENGTH)
# Генерация текста
predictions = model.predict(sequence)
# Вывод результата
print(predictions)
Этот код для генерации текста выдаёт ошибку:
Traceback (most recent call last):
File "C:\Users\USER\Desktop\LifSem TGAI\generate.py", line 21, in <module>
predictions = model.predict(sequence)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER\Desktop\LifSem TGAI\.venv\Lib\site-packages\keras\src\utils\traceback_utils.py", line 123, in error_handler
raise e.with_traceback(filtered_tb) from None
File "C:\Users\USER\Desktop\LifSem TGAI\.venv\Lib\site-packages\keras\src\models\functional.py", line 274, in _adjust_input_rank
raise ValueError(
ValueError: Exception encountered when calling Sequential.call().
Invalid input shape for input Tensor("sequential_1/Cast:0", shape=(1, 50), dtype=float32). Expected shape (None, 28, 28, 1), but input has incompatible shape (1, 50)
Arguments received by Sequential.call():
• inputs=tf.Tensor(shape=(1, 50), dtype=int32)
• training=False
• mask=None
Process finished with exit code 1
Кто знает как это исправить?