Ich habe 100 Trainingsrunden durchgeführt, da sich die Genauigkeit und der Verlust danach kaum ändern werden.
Ergebnis:
test_x | vorhersagen | test_y
Input&Predict&Label
Input&Predict&Label
Wie optimiert man dieses Modell?
Oder gibt es noch andere Möglichkeiten, diesen Effekt zu erzielen?
Ich habe einen Code geschrieben, um den Effekt von Neonlichtern zu erzielen, aber der Effekt ist nicht gut. [b]Hier ist Code.[/b][code]import os
import numpy as np import tensorflow as tf from tensorflow.keras.initializers import glorot_uniform from tensorflow.keras.layers import Input, Activation, ZeroPadding2D, Conv2D from tensorflow.keras.models import Model from tensorflow.keras.preprocessing import image
def input_data(): path_x = "data/train/trainA/" path_y = "data/train/trainB/" train_num = sum([len(x) for _, _, x in os.walk(os.path.dirname(path_x))]) print(train_num) image_train_1 = np.zeros((train_num, 1024, 1024, 3)) label_train_1 = np.zeros((train_num, 1024, 1024, 3)) count = 0 for i in range(train_num): img = image.load_img(path_x + "test (" + str(i + 1) + ").png") x = image.img_to_array(img) x = np.expand_dims(x, axis=0) image_train_1[count] = x img = image.load_img(path_y + "test (" + str(i + 1) + ").png") x = image.img_to_array(img) x = np.expand_dims(x, axis=0) label_train_1[count] = x count += 1 return image_train_1, label_train_1
def test_data(): path_x = "data/train/testA/" path_y = "data/train/testB/" test_num = sum([len(x) for _, _, x in os.walk(os.path.dirname(path_x))]) print(test_num) test_x = np.zeros((test_num, 1024, 1024, 3)) test_y = np.zeros((test_num, 1024, 1024, 3)) count = 0 for i in range(test_num): img = image.load_img(path_x + "test (" + str(i + 1) + ").png") x = image.img_to_array(img) x = np.expand_dims(x, axis=0) test_x[count] = x img = image.load_img(path_y + "test (" + str(i + 1) + ").png") x = image.img_to_array(img) x = np.expand_dims(x, axis=0) test_y[count] = x count += 1 return test_x, test_y
def filterModel(input_shape=(1024, 1024, 3)): shape = Input(input_shape) x = ZeroPadding2D((0, 0))(shape) x = Conv2D(32, (9, 9), strides=(1, 1), padding='same', name='conv1', kernel_initializer=glorot_uniform(seed=0))(x) x = Activation('relu')(x) x = Conv2D(64, (3, 3), strides=(1, 1), padding='same', name='conv2', kernel_initializer=glorot_uniform(seed=0))(x) x = Activation('relu')(x) x = Conv2D(128, (3, 3), strides=(1, 1), padding='same', name='conv3', kernel_initializer=glorot_uniform(seed=0))(x) x = Activation('relu')(x) output = Conv2D(3, (5, 5), strides=(1, 1), padding='same', name='conv5', kernel_initializer=glorot_uniform(seed=0))( x) model1 = Model(inputs=shape, outputs=output, name='FilterModel') return model1
# trainData image_train, label_train = input_data() image_train = image_train.astype('float32') label_train = label_train.astype('float32') image_train /= 255 label_train /= 255 # testData test_x, test_y = test_data() test_x = test_x.astype('float32') test_y = test_y.astype('float32') test_x /= 255 test_y /= 255 # training model = filterModel((1024, 1024, 3)) model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.000003), loss="mean_squared_error", metrics=["accuracy"]) model.summary() model.fit(image_train, label_train, validation_data=(test_x, test_y), epochs=100, batch_size=2) model.save("filterModel.h5") print("Model save done!") [/code] [b]Modellzusammenfassung[/b] [code]Model: "FilterModel" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_1 (InputLayer) [(None, 1024, 1024, 3)] 0 _________________________________________________________________ zero_padding2d (ZeroPadding2 (None, 1024, 1024, 3) 0 _________________________________________________________________ conv1 (Conv2D) (None, 1024, 1024, 32) 7808 _________________________________________________________________ activation (Activation) (None, 1024, 1024, 32) 0 _________________________________________________________________ conv2 (Conv2D) (None, 1024, 1024, 64) 18496 _________________________________________________________________ activation_1 (Activation) (None, 1024, 1024, 64) 0 _________________________________________________________________ conv3 (Conv2D) (None, 1024, 1024, 128) 73856 _________________________________________________________________ activation_2 (Activation) (None, 1024, 1024, 128) 0 _________________________________________________________________ conv5 (Conv2D) (None, 1024, 1024, 3) 9603 ================================================================= Total params: 109,763 Trainable params: 109,763 Non-trainable params: 0 [/code] Ich habe 100 Trainingsrunden durchgeführt, da sich die Genauigkeit und der Verlust danach kaum ändern werden. Ergebnis: test_x | vorhersagen | test_y Input&Predict&Label Input&Predict&Label Wie optimiert man dieses Modell? Oder gibt es noch andere Möglichkeiten, diesen Effekt zu erzielen?
Ich habe Probleme mit TensorFlow, wenn ich meine GPU nicht sehen kann. Ich weiß nicht, ob es ein Problem mit der Installation von CUDA 11.8 gibt, wenn mein Nvidia-Smi sagt: NVIDIA-SMI 572.70...
Ich habe seit Januar einige CNNs auf Colab mit Tensorflow und TensorFlow-io trainiert. Das Training eines Modells dauerte vor ein paar Monaten mehr oder weniger 30 Minuten. Jetzt, seit einigen...
Der folgende Code stammt vor zwei Jahren und macht einen Fehler in mein aktuelles Setup. Ich habe mich gefragt, ob es mit der Änderung zu Keras 3 zusammenhängt oder was hier nicht los ist.
Ich kann...
Unten ist das Design, in dem sich die Animation um die Karte bewegt. Das Problem ist, wenn das Licht nach links von der oberen linken Ecke steigt, weil die Ecke strahlend 80px hat. Kann mir jemand...