Found 75 files belonging to 2 classes.
Using 60 files for training.
Found 65 files belonging to 2 classes.
Using 13 files for validation.
['corner', 'round']
image and label batch for train, than for val
(32, 224, 224, 3)
(32,)
(13, 224, 224, 3)
(13,)
Затем я создаю последовательную модель, чтобы частично заполнить ее весами сети изображений vgg16, а затем добавляю еще несколько слоев для двух моих классов:
Epoch 1/48
Traceback (most recent call last):
File "D:/Practice/prjPy/graph_cnn/vgg-dataset.py", line 119, in
model.fit(train_ds, validation_data=val_ds,epochs=48,callbacks=[brdy])
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\utils\traceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File "C:\Users\Juliy\AppData\Local\Temp\__autograph_generated_filemtsrptmq.py", line 15, in tf__train_function
retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
ValueError: in user code:
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1338, in train_function *
return step_function(self, iterator)
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1322, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1303, in run_step **
outputs = model.train_step(data)
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1081, in train_step
loss = self.compute_loss(x, y, y_pred, sample_weight)
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1139, in compute_loss
return self.compiled_loss(
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\compile_utils.py", line 265, in __call__
loss_value = loss_obj(y_t, y_p, sample_weight=sw)
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\losses.py", line 142, in __call__
losses = call_fn(y_true, y_pred)
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\losses.py", line 268, in call **
return ag_fn(y_true, y_pred, **self._fn_kwargs)
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\losses.py", line 2122, in categorical_crossentropy
return backend.categorical_crossentropy(
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\backend.py", line 5560, in categorical_crossentropy
target.shape.assert_is_compatible_with(output.shape)
ValueError: Shapes (None, 1) and (None, 2) are incompatible
Единственная цифра «2» в моих фигурах — это фигура выходного слоя, и с помощью
Я загружаю свои наборы данных с помощью keras.utils.image_dataset_from_directory(). Вот код: [code]train_ds = image_dataset_from_directory( "train", validation_split=0.2, subset="training", seed=123, image_size=(224, 224))
print("image and label batch for train, than for val") for image_batch, labels_batch in train_ds: print(image_batch.shape) print(labels_batch.shape) break for image_batch, labels_batch in val_ds: print(image_batch.shape) print(labels_batch.shape) break [/code] И вот результат этой части: [code]Found 75 files belonging to 2 classes. Using 60 files for training. Found 65 files belonging to 2 classes. Using 13 files for validation. ['corner', 'round'] image and label batch for train, than for val (32, 224, 224, 3) (32,) (13, 224, 224, 3) (13,) [/code] Затем в уроке был блок нормализации: [code]normalization_layer = Rescaling(1./255) normalized_ds = train_ds.map(lambda x, y: (normalization_layer(x), y)) image_batch, labels_batch = next(iter(normalized_ds)) [/code] Затем я создаю последовательную модель, чтобы частично заполнить ее весами сети изображений vgg16, а затем добавляю еще несколько слоев для двух моих классов: [code]model = Sequential() model.add(Conv2D(input_shape=(224,224,3),filters=64, name='block1_conv1', kernel_size=(3,3),padding="same", activation="relu")) ... model.add(MaxPool2D(pool_size=(2,2),strides=(2,2), name='block5_pool'))
model.load_weights("vgg16_w.h5", skip_mismatch=True, by_name=True) for i in range(0,9): model.layers[i].trainable = False
model.add(Flatten(name='flatten')) model.add(Dense(512, activation="relu", name="deeper")) model.add(Dense(512, activation="relu", name="more_deeper")) model.add(Dense(2, activation="relu", name="to_narrow")) model.add(Dense(2, activation="softmax", name="round_or_sharp")) print(model.summary()) [/code] Затем следует компиляция: [code]boardy = TensorBoard(log_dir='./grph') opt_big = Adam(learning_rate=0.3) opt_small = SGD(learning_rate=0.001) model.compile(loss=keras.losses.categorical_crossentropy, optimizer=opt_big, metrics=['accuracy']) model.fit(train_ds, validation_data=val_ds,epochs=48,callbacks=[boardy]) [/code] А вот что происходит при fit(): [code]Epoch 1/48 Traceback (most recent call last): File "D:/Practice/prjPy/graph_cnn/vgg-dataset.py", line 119, in model.fit(train_ds, validation_data=val_ds,epochs=48,callbacks=[brdy]) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\utils\traceback_utils.py", line 70, in error_handler raise e.with_traceback(filtered_tb) from None File "C:\Users\Juliy\AppData\Local\Temp\__autograph_generated_filemtsrptmq.py", line 15, in tf__train_function retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope) ValueError: in user code:
File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1338, in train_function * return step_function(self, iterator) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1322, in step_function ** outputs = model.distribute_strategy.run(run_step, args=(data,)) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1303, in run_step ** outputs = model.train_step(data) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1081, in train_step loss = self.compute_loss(x, y, y_pred, sample_weight) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\training.py", line 1139, in compute_loss return self.compiled_loss( File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\engine\compile_utils.py", line 265, in __call__ loss_value = loss_obj(y_t, y_p, sample_weight=sw) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\losses.py", line 142, in __call__ losses = call_fn(y_true, y_pred) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\losses.py", line 268, in call ** return ag_fn(y_true, y_pred, **self._fn_kwargs) File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\losses.py", line 2122, in categorical_crossentropy return backend.categorical_crossentropy( File "C:\Users\Juliy\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\src\backend.py", line 5560, in categorical_crossentropy target.shape.assert_is_compatible_with(output.shape)
ValueError: Shapes (None, 1) and (None, 2) are incompatible [/code] Единственная цифра «2» в моих фигурах — это фигура выходного слоя, и с помощью [code]model.add(Dense(1, activation="softmax", name="wants_a_one"))[/code] помогло избежать сообщения об ошибке, но никакой классификации не было. [code]Epoch 47/48
1/1 [==============================] - ETA: 0s 1/1 [==============================] - 0s 239ms/step [[1.]] [/code] Сейчас я тренируюсь для более широкого круга классов, поэтому делать его двоичным — это не то, что мне нужно. Как исправить ValueError?
Я новичок в моделях глубокого обучения CNN. Я пытаюсь классифицировать категории лодок изображений ниже, которые представляют собой папку, содержащую эти имена файлов:
Я пытаюсь классифицировать категории лодок изображений ниже, которые представляют собой папку, содержащую следующие имена папок:
https: //i.sstatic.net/MZiLY9pB.png
У меня есть трехмерный набор данных аудиофайлов, где X.shape равен (329,20,85). Я хочу, чтобы работала простая базовая модель, поэтому, пожалуйста, не придирайтесь и решайте только текущую проблему. Вот код:
model = tf.keras.models.Sequential()...
I want to make the pair group function when I click on the first image, then click on the second image, they will be connected by a black line, the line starts from the right edge of the first image and the left edge of The second image is as sample...