TensorFlow Автоматический эффект неонового свеченияPython

Программы на Python
Anonymous
TensorFlow Автоматический эффект неонового свечения

Сообщение Anonymous »


Я написал фрагмент кода, чтобы добиться эффекта неоновых огней, но эффект не очень хороший.

Вот код.

импортировать ОС импортировать numpy как np импортировать тензорный поток как tf из tensorflow.keras.initializers import glorot_uniform из tensorflow.keras.layers import Input, Activation, ZeroPadding2D, Conv2D из tensorflow.keras.models Модель импорта из изображения импорта tensorflow.keras.preprocessing защита input_data(): path_x = "данные/поезд/поездА/" path_y = "данные/поезд/поездB/" train_num = sum([len(x) для _, _, x в os.walk(os.path.dirname(path_x))]) печать (номер_поезда) image_train_1 = np.zeros((train_num, 1024, 1024, 3)) label_train_1 = np.zeros((train_num, 1024, 1024, 3)) количество = 0 для меня в диапазоне (train_num): img = image.load_img(path_x + "test (" + str(i + 1) + ").png") х = image.img_to_array(img) x = np.expand_dims(x, ось=0) image_train_1[счет] = х img = image.load_img(path_y + "test (" + str(i + 1) + ").png") х = image.img_to_array(img) x = np.expand_dims(x, ось=0) label_train_1[счет] = х считать += 1 вернуть image_train_1, label_train_1 защита test_data(): path_x = "данные/поезд/testA/" path_y = "данные/поезд/testB/" test_num = sum([len(x) для _, _, x в os.walk(os.path.dirname(path_x))]) печать (test_num) test_x = np.zeros((test_num, 1024, 1024, 3)) test_y = np.zeros((test_num, 1024, 1024, 3)) количество = 0 для меня в диапазоне (test_num): img = image.load_img(path_x + "test (" + str(i + 1) + ").png") х = image.img_to_array(img) x = np.expand_dims(x, ось=0) test_x[количество] = х img = image.load_img(path_y + "test (" + str(i + 1) + ").png") х = image.img_to_array(img) x = np.expand_dims(x, ось=0) test_y[количество] = х считать += 1 вернуть test_x, test_y def filterModel(input_shape=(1024, 1024, 3)): форма = Вход (input_shape) x = ZeroPadding2D((0, 0))(форма) x = Conv2D(32, (9, 9), шаги=(1, 1), дополнение='same', name='conv1', kernel_initializer=glorot_uniform(seed=0))(x) x = Активация('relu')(x) x = Conv2D(64, (3, 3), шаги=(1, 1), дополнение='same', name='conv2', kernel_initializer=glorot_uniform(seed=0))(x) x = Активация('relu')(x) x = Conv2D(128, (3, 3), шаги=(1, 1), дополнение='same', name='conv3', kernel_initializer=glorot_uniform(seed=0))(x) x = Активация('relu')(x) вывод = Conv2D(3, (5, 5), шаги=(1, 1), дополнение='тот же', имя='конв5', kernel_initializer=glorot_uniform(seed=0))( Икс) модель1 = Модель (входные данные = форма, выходные данные = выходные данные, имя = 'FilterModel') возврат модели1 # данные поезда image_train, label_train = input_data() image_train = image_train.astype('float32') label_train = label_train.astype('float32') image_train /= 255 label_train /= 255 # тестовые данные test_x, test_y = test_data() test_x = test_x.astype('float32') test_y = test_y.astype('float32') test_x /= 255 test_y /= 255 # обучение модель = filterModel((1024, 1024, 3)) model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.000003), loss="mean_squared_error", метрики = ["точность"]) модель.сводка() model.fit(image_train, label_train, validation_data=(test_x, test_y), эпохи=100, пакет_размер=2) model.save("filterModel.h5") print("Сохранение модели завершено!") сводка модели

Модель: «FilterModel» _________________________________________________________________ Слой (тип) Выходная форма Параметр # =============================================== =============== input_1 (InputLayer) [(Нет, 1024, 1024, 3)] 0 _________________________________________________________________ Zero_padding2d (ZeroPadding2 (Нет, 1024, 1024, 3) 0 _________________________________________________________________ conv1 (Conv2D) (Нет, 1024, 1024, 32) 7808 _________________________________________________________________ активация (Активация) (Нет, 1024, 1024, 32) 0 _________________________________________________________________ conv2 (Conv2D) (Нет, 1024, 1024, 64) 18496 _________________________________________________________________ активация_1 (Активация) (Нет, 1024, 1024, 64) 0 _________________________________________________________________ conv3 (Conv2D) (Нет, 1024, 1024, 128) 73856 _________________________________________________________________ активация_2 (Активация) (Нет, 1024, 1024, 128) 0 _________________________________________________________________ conv5 (Conv2D) (Нет, 1024, 1024, 3) 9603 =============================================== =============== Всего параметров: 109 763 Обучаемые параметры: 109 763 Необучаемые параметры: 0 Я провел 100 раундов обучения, потому что после этого точность и потери практически не изменятся.

результат:

test_x | предсказать | test_y

Ввод, прогнозирование и метка

Ввод, прогнозирование и метка

Как оптимизировать эту модель? Или есть другие способы добиться такого эффекта?

Вернуться в «Python»