Почему моя модель классификации видео не тренируется? ⇐ Python
Почему моя модель классификации видео не тренируется?
Я создаю модель классификации видео, используя данные изображения, текста и аудио, но после того, как я создал свои данные, я попытался обучить их, но модель Cnn показывает ошибку ниже.
# Извлечение функций из аудио импортировать Moviepy.editor импортировать либросу импортировать numpy как np защита audioFeaturesExtracter(): айфон = {1:[], 2:[], 3:[]} Самсунг = {1:[], 2:[], 3:[]} видео = ['1.mp4','2.mp4','3.mp4'] labels = ['iphone','samsung'] для телефона в этикетках: путь = '/kaggle/input/iphone-vs-samsung/Классификация видео/'+phone+'/' для меня в видео: видео = moviepy.editor.VideoFileClip(путь+str(i)) аудио = видео.аудио audio.write_audiofile(str(i.replace('.mp4','.mp3'))) data, sr = librosa.load('/kaggle/working/'+str(i.replace('.mp4','.mp3'))) функции = librosa.feature.mfcc(y=data, sr=sr, n_mfcc=40) функции = np.mean(features.T, ось = 0) если телефон == 'iphone': iphone[int(i.replace('.mp4',''))].append(функции) еще: samsung[int(i.replace('.mp4',''))].append(функции) вернуть айфон, самсунг iphone, samsung = audioFeaturesExtracter() аудио = [] для ip в iphone.values(): audio.append(ip) для Сэма в samsung.values(): audio.append(Сэм) Это для изображений
def video_to_image(): айфон = {1:[], 2:[], 3:[]} Самсунг = {1:[], 2:[], 3:[]} labels = ['iphone', 'samsung'] импортировать cv2 для меня в ярлыках: для j в диапазоне (1,4): видео = cv2.VideoCapture('/kaggle/input/iphone-vs-samsung/Классификация видео/'+i+'/'+str(j)+'.mp4') успех, изображение = video.read() пока успех: если я == 'iphone': iphone[j].append(изображение) еще: samsung[j].append(изображение) успех, изображение = video.read() print('Завершено.....') вернуть айфон, самсунг iphone_image, samsung_image = video_to_image() изображение = [] для ip в iphone.values(): изображение.append(ip) для Сэма в samsung.values(): image.append(Сэм) Это для текста
из sklearn.feature_extraction.text импортировать CountVectorizer защита textFeaturesExtracter(): векторизатор = CountVectorizer() айфон = {1:[], 2:[], 3:[]} Самсунг = {1:[], 2:[], 3:[]} видео = ['1.txt','2.txt','3.txt'] labels = ['iphone','samsung'] для телефона в этикетках: путь = '/kaggle/input/iphone-vs-samsung/Классификация видео/'+phone+'/' для меня в видео: с open(path+str(i), 'r') как: текст = а.читать() текст = векторизатор.fit_transform([текст]) если телефон == 'iphone': iphone[int(i.replace('.txt',''))].append(text.toarray()) еще: samsung[int(i.replace('.txt',''))].append(text.toarray()) вернуть айфон, самсунг iphone_text, samsung_text = textFeaturesExtracter() текст = [] для ip в iphone.values(): text.append(ip) для Сэма в samsung.values(): text.append(Сэм) Это подготовка данных
импортировать панд как pd данные = pd.DataFrame() данные['текст'] = текст данные['аудио'] = аудио данные['изображение'] = изображение # айфон = 0, Самсунг = 1 данные['метки'] = [0,0,0,1,1,1] data['phones'] = data['labels'].apply(лямбда x: 'iphone', если x == 0, иначе 'samsung') X = data.drop(['метки','телефоны'], ось=1) y = данные['метки'] Тогда это моя модель
из tensorflow.keras import Sequential из tensorflow.keras.layers import Dense, Conv2D, Flatten, MaxPooling2D модель = Последовательный() model.add(Conv2D(filters=32, kernel_size=(3,3), активация='relu', input_shape=(1,6,3))) model.add(MaxPooling2D((2,2))) model.add(Conv2D(filters=64, kernel_size=(3,3))) model.add(MaxPooling2D((2,2))) model.add(Сгладить()) model.add(Dense(64, активация='relu')) model.add(Dense(2, активация = 'softmax')) и появляется следующая ошибка. я делаю что-то не так?
-------------------------------------------- ------------------------------- ValueError Traceback (самый последний вызов — последний) Ячейка In[70], строка 6 2 из tensorflow.keras.layers import Dense, Conv2D, Flatten, MaxPooling2D 4 модель = Последовательная() ----> 6 model.add(Conv2D(filters=32, kernel_size=(3,3), active='relu', input_shape=(1,6,3))) 7 model.add(MaxPooling2D((2,2))) 9 model.add(Conv2D(filters=64, kernel_size=(3,3))) Файл /opt/conda/lib/python3.10/site-packages/tensorflow/python/trackable/base.py:205 в no_automatic_dependent_tracking.._method_wrapper(self, *args, **kwargs) 203 self._self_setattr_tracking = False # pylint: отключить = защищенный доступ 204 попробуйте: --> 205 результат = метод(self, *args, **kwargs) 206 наконец: 207 self._self_setattr_tracking = предыдущее_значение # pylint: отключить = защищенный доступ Файл /opt/conda/lib/python3.10/site-packages/keras/utils/traceback_utils.py:70 в filter_traceback..error_handler(*args, **kwargs) 67 filtered_tb = _process_traceback_frames(e.__traceback__) 68 # Чтобы получить полную трассировку стека, вызовите: 69 # `tf.debugging.disable_traceback_filtering()` ---> 70 поднять e.with_traceback(filtered_tb) с None 71 наконец: 72 дель filtered_tb Файл /opt/conda/lib/python3.10/site-packages/keras/layers/convolutional/base_conv.py:354 в Conv.compute_output_shape(self, input_shape) 347 вернуть tf.TensorShape( 348 input_shape[:batch_rank] 349 + [самофильтры] 350 + self._spatial_output_shape(input_shape[batch_rank + 1:]) 351 ) 353, кроме ValueError: --> 354 поднять ValueError( 355 "Одно из измерений в выводе
Я создаю модель классификации видео, используя данные изображения, текста и аудио, но после того, как я создал свои данные, я попытался обучить их, но модель Cnn показывает ошибку ниже.
# Извлечение функций из аудио импортировать Moviepy.editor импортировать либросу импортировать numpy как np защита audioFeaturesExtracter(): айфон = {1:[], 2:[], 3:[]} Самсунг = {1:[], 2:[], 3:[]} видео = ['1.mp4','2.mp4','3.mp4'] labels = ['iphone','samsung'] для телефона в этикетках: путь = '/kaggle/input/iphone-vs-samsung/Классификация видео/'+phone+'/' для меня в видео: видео = moviepy.editor.VideoFileClip(путь+str(i)) аудио = видео.аудио audio.write_audiofile(str(i.replace('.mp4','.mp3'))) data, sr = librosa.load('/kaggle/working/'+str(i.replace('.mp4','.mp3'))) функции = librosa.feature.mfcc(y=data, sr=sr, n_mfcc=40) функции = np.mean(features.T, ось = 0) если телефон == 'iphone': iphone[int(i.replace('.mp4',''))].append(функции) еще: samsung[int(i.replace('.mp4',''))].append(функции) вернуть айфон, самсунг iphone, samsung = audioFeaturesExtracter() аудио = [] для ip в iphone.values(): audio.append(ip) для Сэма в samsung.values(): audio.append(Сэм) Это для изображений
def video_to_image(): айфон = {1:[], 2:[], 3:[]} Самсунг = {1:[], 2:[], 3:[]} labels = ['iphone', 'samsung'] импортировать cv2 для меня в ярлыках: для j в диапазоне (1,4): видео = cv2.VideoCapture('/kaggle/input/iphone-vs-samsung/Классификация видео/'+i+'/'+str(j)+'.mp4') успех, изображение = video.read() пока успех: если я == 'iphone': iphone[j].append(изображение) еще: samsung[j].append(изображение) успех, изображение = video.read() print('Завершено.....') вернуть айфон, самсунг iphone_image, samsung_image = video_to_image() изображение = [] для ip в iphone.values(): изображение.append(ip) для Сэма в samsung.values(): image.append(Сэм) Это для текста
из sklearn.feature_extraction.text импортировать CountVectorizer защита textFeaturesExtracter(): векторизатор = CountVectorizer() айфон = {1:[], 2:[], 3:[]} Самсунг = {1:[], 2:[], 3:[]} видео = ['1.txt','2.txt','3.txt'] labels = ['iphone','samsung'] для телефона в этикетках: путь = '/kaggle/input/iphone-vs-samsung/Классификация видео/'+phone+'/' для меня в видео: с open(path+str(i), 'r') как: текст = а.читать() текст = векторизатор.fit_transform([текст]) если телефон == 'iphone': iphone[int(i.replace('.txt',''))].append(text.toarray()) еще: samsung[int(i.replace('.txt',''))].append(text.toarray()) вернуть айфон, самсунг iphone_text, samsung_text = textFeaturesExtracter() текст = [] для ip в iphone.values(): text.append(ip) для Сэма в samsung.values(): text.append(Сэм) Это подготовка данных
импортировать панд как pd данные = pd.DataFrame() данные['текст'] = текст данные['аудио'] = аудио данные['изображение'] = изображение # айфон = 0, Самсунг = 1 данные['метки'] = [0,0,0,1,1,1] data['phones'] = data['labels'].apply(лямбда x: 'iphone', если x == 0, иначе 'samsung') X = data.drop(['метки','телефоны'], ось=1) y = данные['метки'] Тогда это моя модель
из tensorflow.keras import Sequential из tensorflow.keras.layers import Dense, Conv2D, Flatten, MaxPooling2D модель = Последовательный() model.add(Conv2D(filters=32, kernel_size=(3,3), активация='relu', input_shape=(1,6,3))) model.add(MaxPooling2D((2,2))) model.add(Conv2D(filters=64, kernel_size=(3,3))) model.add(MaxPooling2D((2,2))) model.add(Сгладить()) model.add(Dense(64, активация='relu')) model.add(Dense(2, активация = 'softmax')) и появляется следующая ошибка. я делаю что-то не так?
-------------------------------------------- ------------------------------- ValueError Traceback (самый последний вызов — последний) Ячейка In[70], строка 6 2 из tensorflow.keras.layers import Dense, Conv2D, Flatten, MaxPooling2D 4 модель = Последовательная() ----> 6 model.add(Conv2D(filters=32, kernel_size=(3,3), active='relu', input_shape=(1,6,3))) 7 model.add(MaxPooling2D((2,2))) 9 model.add(Conv2D(filters=64, kernel_size=(3,3))) Файл /opt/conda/lib/python3.10/site-packages/tensorflow/python/trackable/base.py:205 в no_automatic_dependent_tracking.._method_wrapper(self, *args, **kwargs) 203 self._self_setattr_tracking = False # pylint: отключить = защищенный доступ 204 попробуйте: --> 205 результат = метод(self, *args, **kwargs) 206 наконец: 207 self._self_setattr_tracking = предыдущее_значение # pylint: отключить = защищенный доступ Файл /opt/conda/lib/python3.10/site-packages/keras/utils/traceback_utils.py:70 в filter_traceback..error_handler(*args, **kwargs) 67 filtered_tb = _process_traceback_frames(e.__traceback__) 68 # Чтобы получить полную трассировку стека, вызовите: 69 # `tf.debugging.disable_traceback_filtering()` ---> 70 поднять e.with_traceback(filtered_tb) с None 71 наконец: 72 дель filtered_tb Файл /opt/conda/lib/python3.10/site-packages/keras/layers/convolutional/base_conv.py:354 в Conv.compute_output_shape(self, input_shape) 347 вернуть tf.TensorShape( 348 input_shape[:batch_rank] 349 + [самофильтры] 350 + self._spatial_output_shape(input_shape[batch_rank + 1:]) 351 ) 353, кроме ValueError: --> 354 поднять ValueError( 355 "Одно из измерений в выводе
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Модель обучения с подкреплением не тренируется на графическом процессоре Pytorch
Anonymous » » в форуме Python - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Модель обучения с подкреплением не тренируется на графическом процессоре Pytorch
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-