Я получаю ошибки при обучении моей модели CNN, которая предназначена для проверки того, что человек говорит на языке жестов. Я работаю с керасом, тензорным потоком.
Это мой код:
import tensorflow as tf ;importing libraries
from tensorflow.keras import datasets,layers,models
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.preprocessing.image import ImageDataGenerator
; Data preprocessing
train_datagen = ImageDataGenerator(rescale = 1./255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True)
training_set = train_datagen.flow_from_directory('split__data/Train',
target_size = (64, 64),
batch_size = 32,
class_mode = 'categorical')
test_datagen = ImageDataGenerator(rescale = 1./255)
test_set = test_datagen.flow_from_directory('split__data/Test',
target_size = (64, 64),
batch_size = 32,
class_mode = 'categorical')
; Building the model
cnn = tf.keras.models.Sequential()
cnn.add(tf.keras.layers.Conv2D(filters = 16,kernel_size = 3,activation = 'relu',input_shape = [64,64,3]))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
cnn.add(tf.keras.layers.Conv2D(filters = 32,kernel_size = 3,activation = 'relu',input_shape = [64,64,3]))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
cnn.add(tf.keras.layers.Conv2D(filters = 64,kernel_size = 3,activation = 'relu',input_shape = [64,64,3]))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
cnn.add(tf.keras.layers.Flatten())
cnn.add(tf.keras.layers.Dense(units=500,activation='relu'))
cnn.add(tf.keras.layers.Dense(units=1,activation='softmax'))
; compiling and training
cnn.compile(optimizer = 'adam' , loss= 'categorical_crossentropy',metrics = ['accuracy'])
;the next line is giving me error
cnn.fit(x = training_set,validation_data = test_set,batch_size = 32,epochs = 10)
Это ошибка. Я не могу понять, откуда генерируются эти ошибки. Я пробовал изменить размер пакета, высоту и ширину изображения, но ничего не происходит. Я получаю ту же ошибку.
Я получаю ошибки при обучении моей модели CNN, которая предназначена для проверки того, что человек говорит на языке жестов. Я работаю с керасом, тензорным потоком. Это мой код: [code]import tensorflow as tf ;importing libraries from tensorflow.keras import datasets,layers,models import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.preprocessing.image import ImageDataGenerator ; Data preprocessing train_datagen = ImageDataGenerator(rescale = 1./255, shear_range = 0.2, zoom_range = 0.2, horizontal_flip = True) training_set = train_datagen.flow_from_directory('split__data/Train', target_size = (64, 64), batch_size = 32, class_mode = 'categorical') test_datagen = ImageDataGenerator(rescale = 1./255) test_set = test_datagen.flow_from_directory('split__data/Test', target_size = (64, 64), batch_size = 32, class_mode = 'categorical')
; Building the model cnn = tf.keras.models.Sequential() cnn.add(tf.keras.layers.Conv2D(filters = 16,kernel_size = 3,activation = 'relu',input_shape = [64,64,3])) cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
; compiling and training cnn.compile(optimizer = 'adam' , loss= 'categorical_crossentropy',metrics = ['accuracy']) ;the next line is giving me error cnn.fit(x = training_set,validation_data = test_set,batch_size = 32,epochs = 10)
[/code] Это ошибка. Я не могу понять, откуда генерируются эти ошибки. Я пробовал изменить размер пакета, высоту и ширину изображения, но ничего не происходит. Я получаю ту же ошибку. [code]--------------------------------------------------------------------------- InvalidArgumentError Traceback (most recent call last) in ----> 1 cnn.fit(x = training_set,validation_data = test_set,batch_size = 32,epochs = 10)
C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in __call__(self, *args, **kwds) 887 888 with OptionalXlaContext(self._jit_compile): --> 889 result = self._call(*args, **kwds) 890 891 new_tracing_count = self.experimental_get_tracing_count()
C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in _call(self, *args, **kwds) 948 # Lifting succeeded, so variables are initialized and we can run the 949 # stateless function. --> 950 return self._stateless_fn(*args, **kwds) 951 else: 952 _, _, _, filtered_flat_args = \