Как протестировать модель TensorFlow для одного входного файла?

Я новичок в TensorFlow. Вышеприведенный код представляет собой код Python, который обучает NN задаче идентификации разговорного языка. Как я могу добавить возможность прогнозировать один аудиофайл и дать предсказывает имя класса (метки), а также как я могу сохранить классы (метки) в модели перед выводом?

      from glob import glob
import os
import yaml
import math
import matplotlib.pyplot as plt
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.layers import Input, Concatenate
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.callbacks import EarlyStopping, LearningRateScheduler

def step_decay(epoch, lr):
    drop = 0.94
    epochs_drop = 2.0
    lrate = lr * math.pow(drop, math.floor((1+epoch)/epochs_drop))
    return lrate

main_dir = os.getcwd()

#Load configurations for startup
config_file_path = os.path.join(main_dir, "config.yaml")
config_file =  open(config_file_path, 'r+')
main_config = yaml.safe_load(config_file)

languages = main_config["Languages"]
dataset_root_path = main_config["Target Root Path"]
batch_size = main_config["Batch Size"]
image_width = main_config["Image Width"]
image_height = main_config["Image Height"]
validation_split = main_config["Validation Split"]
initial_learning_rate = main_config["Initial Learning Rate"]

config_file.close()

categories = ["train", "test"]

train_path = dataset_root_path + categories[0]

num_classes = len(languages)

model_file = dataset_root_path + 'model.h5'

all_files = glob(train_path + '/*/*.png')

num_validation = len(all_files) * validation_split
num_train = len(all_files) - num_validation

validation_steps = int(num_validation / batch_size)
steps_per_epoch = int(num_train / batch_size)

print('Steps per Epoch: ' + str(steps_per_epoch))
print('Validation steps: ' + str(validation_steps))

image_data_generator = ImageDataGenerator(rescale=1./255, validation_split=validation_split)
train_generator = image_data_generator.flow_from_directory(train_path, batch_size=batch_size, class_mode='categorical', target_size=(image_height, image_width), color_mode='grayscale', subset='training')
validation_generator = image_data_generator.flow_from_directory(train_path, batch_size=batch_size, class_mode='categorical', target_size=(image_height, image_width), color_mode='grayscale', subset='validation')

#Model definition
img_input = Input(shape=(image_height, image_width, 1))

img_conc = Concatenate(axis=3, name='input_concat')([img_input, img_input, img_input])

model = InceptionV3(input_tensor=img_conc, weights=None, include_top=True, classes=2)

model.summary()
model.compile(optimizer=RMSprop(learning_rate=initial_learning_rate, clipvalue=2.0), loss='categorical_crossentropy', metrics=['accuracy'])
early_stopping = EarlyStopping(monitor='val_accuracy', mode='max', patience=10, restore_best_weights=True)

learning_rate_decay = LearningRateScheduler(step_decay, verbose=1)
history = model.fit(train_generator, validation_data=validation_generator, epochs=60, steps_per_epoch=steps_per_epoch, validation_steps=validation_steps, callbacks=[early_stopping, learning_rate_decay])

model.save(model_file)

Файл конфигурации (yaml) для проекта выглядит так:

Проект: Идентификация языка

Языки:

хы: Армянский

как: ассамский

Целевой корневой путь: /home/nn/Desktop/Language_Identification/Data/

Размер партии: 1

Ширина изображения: 500

Высота изображения: 128

Разделение проверки: 0,1

Начальная скорость обучения: 0,045

0 ответов

Другие вопросы по тегам