Недавно я тестировал код («main.py») для классификации изображений с использованием модели CNN (независимо от того, является ли изображение кошкой или собакой), и постоянно получаю следующую ошибку:
File "c:\Users\UserPC\Downloads\image-classification-using-cnn-master\image-classification-using-cnn-master\Code\main.py", line 164, in
history = model.fit(
^^^^^^^^^^
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\utils\traceback_utils.py", line 122, in error_handler
raise e.with_traceback(filtered_tb) from None
File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\backend\tensorflow\nn.py", line 694, in binary_crossentropy
raise ValueError(
ValueError: Arguments `target` and `output` must have the same rank (ndim). Received: target.shape=(50,), output.shape=(50, 2)
Я не уверен, имеет ли это какое-либо отношение к get_model():
Недавно я тестировал код («main.py») для классификации изображений с использованием модели CNN (независимо от того, является ли изображение кошкой или собакой), и постоянно получаю следующую ошибку: [code]File "c:\Users\UserPC\Downloads\image-classification-using-cnn-master\image-classification-using-cnn-master\Code\main.py", line 164, in history = model.fit( ^^^^^^^^^^ File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\utils\traceback_utils.py", line 122, in error_handler raise e.with_traceback(filtered_tb) from None File "C:\Users\UserPC\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\backend\tensorflow\nn.py", line 694, in binary_crossentropy raise ValueError( ValueError: Arguments `target` and `output` must have the same rank (ndim). Received: target.shape=(50,), output.shape=(50, 2) [/code] Я не уверен, имеет ли это какое-либо отношение к get_model(): [code]import numpy as np import math from data_prep import prep_and_load_data import constants as CONST import pickle import os import cv2 from matplotlib import pyplot as plt import copy import tensorflow as tf import keras as k from keras._tf_keras.keras.models import Sequential from keras._tf_keras.keras.layers import Dense, Dropout, Activation, Flatten, BatchNormalization from keras._tf_keras.keras.layers import Conv2D, MaxPooling2D from keras._tf_keras.keras.callbacks import TensorBoard import constants as CONST # from keras._tf_keras.keras.utils import to_categorical
def get_model(): # model = k.Sequential() model = Sequential()
# Final Dense layer for binary classification (2 classes) model.add(Dense(2, activation='softmax')) # Changed from 10 to 2 units
# Compile the model with binary crossentropy loss model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) print('Model prepared...') return model
def plotter(history_file): with open(history_file, 'rb') as file: history = pickle.load(file)
if __name__ == "__main__": data = np.array(prep_and_load_data(),dtype=object) # print(data) train_size = int(CONST.DATA_SIZE * CONST.SPLIT_RATIO)
# print('data', len(data), train_size)
train_data = data[:train_size] train_images = np.array([i[0] for i in train_data]).reshape(-1, CONST.IMG_SIZE, CONST.IMG_SIZE, 3) train_labels = np.array([i[1] for i in train_data]) # print(train_data) print('Train data fetched...')
test_data = data[train_size:] test_images = np.array([i[0] for i in test_data]).reshape(-1, CONST.IMG_SIZE, CONST.IMG_SIZE, 3) test_labels = np.array([i[1] for i in test_data]) print('Test data fetched...')
model = get_model()
print('Training started...')
history = model.fit( train_images, train_labels, batch_size=50, epochs=15, verbose=1, validation_data=(test_images, test_labels), callbacks=[k.callbacks.TensorBoard(log_dir='./logs', histogram_freq=1, write_graph=True, write_images=True)] # Ensure the tensorboard callback is passed here ) print('Training done...') model.save('TEST.h5')
# history_file = 'TEST_history.pickle' # with open(history_file, 'wb') as file: # pickle.dump(history.history, file)
# plotter(history_file) # video_write(model) [/code] Я пробовал использовать категориальный импорт, но все равно получал ту же проблему.
Я пытался создать нейронную сеть, которая может идентифицировать изображения, но когда я иду и пытаюсь подготовить свою модель, я получаю следующую ошибку:
ValueError Traceback (most recent call last)
in ()
1 # Train the model
----> 2 history =...
Я работаю с моделью тензорного потока с несколькими выходами, просто в целях обучения, которая должна выводить 1 числовой и 1 категориальный данные (6 классов).
Кажется, все в порядке, ну -определено, но когда я подхожу к модели, появляется ошибка:...
Я работаю с моделью тензорного потока с несколькими выходами, просто в целях обучения, которая должна выводить 1 числовой и 1 категориальный данные (6 классов).
Кажется, все в порядке, ну -определено, но когда я подгоняю модель, появляется ошибка:...
Я видел существующий вопрос, но ни один из них мне не помог.
У меня проблема, описанная в заголовке, дополнительная информация ниже:
Я могу прочитать ошибку, но, к сожалению, не смогла найдите источник проблемы...
вот моя модель:
X, Y_segmentation,...