InvalidArgumentError:图形执行错误:CNN模型

发布于 2025-02-11 16:02:38 字数 11788 浏览 1 评论 0原文

#我在我的模型#中获得了无效的参数错误

在运行此VGG培训代码时,我有多个错误(代码 和下面显示的错误)。我不知道它是因为我的数据集还是 是其他吗?

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    import os
    import tensorflow as tf
    import keras
    import glob as gb
    
    from keras.preprocessing.image import load_img, img_to_array
    from keras.preprocessing.image import ImageDataGenerator
    from keras.layers import Dense,Input,Dropout,GlobalAveragePooling2D,Flatten,Conv2D,BatchNormalization,Activation,MaxPooling2D
    from keras.models import Model,Sequential
    from tensorflow.keras.optimizers import Adam , SGD, RMSprop

!unzip gdrive/My\ Drive/data/emotioncollab2.zip > /dev/null

TRAIN_DIR="/content/eINTERFACE_2021_Image/train"
TEST_DIR="/content/eINTERFACE_2021_Image/test"
BATCH_SIZE= 64
for folder in os.listdir(TRAIN_DIR):
  files=gb.glob(pathname=str(TRAIN_DIR+"/"+folder+'/*.jpg'))
  print(f'for training data , found{len(files)} in folder {folder}')

for folder in os.listdir(TEST_DIR):
  files=gb.glob(pathname=str(TEST_DIR+"/"+folder+'/*.jpg'))
  print(f'for testing data , found{len(files)} in folder {folder}')

import random
import matplotlib.image as mpimg

def view_random_images(target_dir,target_class):
  target_folder = target_dir+target_class

  random_image=random.sample(os.listdir(target_folder),1)

  img=mpimg.imread(target_folder+'/'+random_image[0])
  plt.imshow(img)
  plt.title(target_class)
  plt.axis('off');
  print(f"Image shape{img.shape}")

  return img
class_names = ['Anger','Disgust','Fear','Happiness','Sadness','Surprise']
        plt.figure(figsize=(20,10))
        for i in range(18):
          plt.subplot(3,6,i+1)
          class_name=random.choice(class_names)
          img=view_random_images(target_dir="/content/eINTERFACE_2021_Image/train/",target_class=class_name)
        
        from keras.preprocessing.image import ImageDataGenerator
        
        train_datagen = ImageDataGenerator(rescale=1./255,
                                           shear_range=0.2,
                                           zoom_range=0.2,
                                           horizontal_flip=True)
        test_datagen=ImageDataGenerator(rescale=1./255)
        
        training_set=train_datagen.flow_from_directory(TRAIN_DIR,
                                                       target_size=(256,256),
                                                       batch_size=BATCH_SIZE,
                                                       class_mode='categorical')
        
        test_set=test_datagen.flow_from_directory(TEST_DIR,
                                                  target_size=(256,256),
                                                  batch_size=BATCH_SIZE,
                                                  class_mode='categorical'
                                                  )
        
        classifier=Sequential()
        
        classifier.add(Conv2D(16,(3,3),input_shape=(128,1288,3),activation='relu'))
        
        classifier.add(MaxPooling2D(pool_size=(2,2)))
        classifier.add(BatchNormalization(axis=-1))
        
        classifier.add(Conv2D(32,(3,3),activation='relu'))
        classifier.add(MaxPooling2D(pool_size=(2,2)))
        classifier.add(BatchNormalization(axis=-1))
        
        classifier.add(Flatten())
        
        classifier.add(Dense(units=128,activation='relu'))
        classifier.add(BatchNormalization())
        classifier.add(Dropout(rate=0.5))
        classifier.add(Dense(6,activation='softmax'))
        
        opt= tf.keras.optimizers.Adam(learning_rate=0.001 , decay=0.001/(50*0.5))
        
        
        classifier.compile(optimizer=opt,loss='sparse_categorical_crossentropy',metrics=['accuracy'])
        
        history=classifier.fit(training_set,epochs=50,validation_data=test_set,verbose=1)
        classifier.save('model.h5')
        
        

##这是错误:##

这是代码的第一个错误,只有错误

        Epoch 1/50
        ---------------------------------------------------------------------------
        InvalidArgumentError                      Traceback (most recent call last)
        <ipython-input-69-16dc3b00a1b3> in <module>()
        ----> 1 history=classifier.fit(training_set,epochs=50,validation_data=test_set,verbose=1)
              2 classifier.save('model.h5')
        
        1 frames
        /usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
             53     ctx.ensure_initialized()
             54     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
        ---> 55                                         inputs, attrs, num_outputs)
             56   except core._NotOkStatusException as e:
             57     if name is not None:
        
        InvalidArgumentError: Graph execution error:
        
        Detected at node 'sequential_12/flatten_12/Reshape' defined at (most recent call last):
            File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
              "__main__", mod_spec)
            File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
              exec(code, run_globals)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py", line 16, in <module>
              app.launch_new_instance()
            File "/usr/local/lib/python3.7/dist-packages/traitlets/config/application.py", line 846, in launch_instance
              app.start()
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelapp.py", line 499, in start
              self.io_loop.start()
            File "/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py", line 132, in start
              self.asyncio_loop.run_forever()
            File "/usr/lib/python3.7/asyncio/base_events.py", line 541, in run_forever
              self._run_once()
            File "/usr/lib/python3.7/asyncio/base_events.py", line 1786, in _run_once
              handle._run()
            File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
              self._context.run(self._callback, *self._args)
            File "/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py", line 122, in _handle_events
              handler_func(fileobj, events)
            File "/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 577, in _handle_events
              self._handle_recv()
            File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 606, in _handle_recv
              self._run_callback(callback, msg)
            File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 556, in _run_callback
              callback(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 283, in dispatcher
              return self.dispatch_shell(stream, msg)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 233, in dispatch_shell
              handler(stream, idents, msg)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 399, in execute_request
              user_expressions, allow_stdin)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/ipkernel.py", line 208, in do_execute
              res = shell.run_cell(code, store_history=store_history, silent=silent)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/zmqshell.py", line 537, in run_cell
              return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2718, in run_cell
              interactivity=interactivity, compiler=compiler, result=result)
            File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2822, in run_ast_nodes
              if self.run_code(code, result):
            File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2882, in run_code
              exec(code_obj, self.user_global_ns, self.user_ns)
            File "<ipython-input-69-16dc3b00a1b3>", line 1, in <module>
              history=classifier.fit(training_set,epochs=50,validation_data=test_set,verbose=1)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1384, in fit
              tmp_logs = self.train_function(iterator)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1021, in train_function
              return step_function(self, iterator)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1010, in step_function
              outputs = model.distribute_strategy.run(run_step, args=(data,))
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1000, in run_step
              outputs = model.train_step(data)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 859, in train_step
              y_pred = self(x, training=True)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1096, in __call__
              outputs = call_fn(inputs, *args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 92, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/sequential.py", line 374, in call
              return super(Sequential, self).call(inputs, training=training, mask=mask)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/functional.py", line 452, in call
              inputs, training=training, mask=mask)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/functional.py", line 589, in _run_internal_graph
              outputs = node.layer(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1096, in __call__
              outputs = call_fn(inputs, *args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 92, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/layers/core/flatten.py", line 96, in call
              return tf.reshape(inputs, flattened_shape)
        Node: 'sequential_12/flatten_12/Reshape'
        Input to reshape is a tensor with 7872512 values, but the requested shape requires a multiple of 307200
             [[{{node sequential_12/flatten_12/Reshape}}]] [Op:__inference_train_function_10733]

我正在使用Google Colagoratory运行此操作。我有一个模块 应该安装吗?还是代码本身纯粹是错误?

#i am getting this invalid argument error in my model#

I'm having multiple errors while running this VGG training code (code
and errors shown below). I don't know if its because of my dataset or
is it something else.

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    import os
    import tensorflow as tf
    import keras
    import glob as gb
    
    from keras.preprocessing.image import load_img, img_to_array
    from keras.preprocessing.image import ImageDataGenerator
    from keras.layers import Dense,Input,Dropout,GlobalAveragePooling2D,Flatten,Conv2D,BatchNormalization,Activation,MaxPooling2D
    from keras.models import Model,Sequential
    from tensorflow.keras.optimizers import Adam , SGD, RMSprop

!unzip gdrive/My\ Drive/data/emotioncollab2.zip > /dev/null

TRAIN_DIR="/content/eINTERFACE_2021_Image/train"
TEST_DIR="/content/eINTERFACE_2021_Image/test"
BATCH_SIZE= 64
for folder in os.listdir(TRAIN_DIR):
  files=gb.glob(pathname=str(TRAIN_DIR+"/"+folder+'/*.jpg'))
  print(f'for training data , found{len(files)} in folder {folder}')

for folder in os.listdir(TEST_DIR):
  files=gb.glob(pathname=str(TEST_DIR+"/"+folder+'/*.jpg'))
  print(f'for testing data , found{len(files)} in folder {folder}')

import random
import matplotlib.image as mpimg

def view_random_images(target_dir,target_class):
  target_folder = target_dir+target_class

  random_image=random.sample(os.listdir(target_folder),1)

  img=mpimg.imread(target_folder+'/'+random_image[0])
  plt.imshow(img)
  plt.title(target_class)
  plt.axis('off');
  print(f"Image shape{img.shape}")

  return img
class_names = ['Anger','Disgust','Fear','Happiness','Sadness','Surprise']
        plt.figure(figsize=(20,10))
        for i in range(18):
          plt.subplot(3,6,i+1)
          class_name=random.choice(class_names)
          img=view_random_images(target_dir="/content/eINTERFACE_2021_Image/train/",target_class=class_name)
        
        from keras.preprocessing.image import ImageDataGenerator
        
        train_datagen = ImageDataGenerator(rescale=1./255,
                                           shear_range=0.2,
                                           zoom_range=0.2,
                                           horizontal_flip=True)
        test_datagen=ImageDataGenerator(rescale=1./255)
        
        training_set=train_datagen.flow_from_directory(TRAIN_DIR,
                                                       target_size=(256,256),
                                                       batch_size=BATCH_SIZE,
                                                       class_mode='categorical')
        
        test_set=test_datagen.flow_from_directory(TEST_DIR,
                                                  target_size=(256,256),
                                                  batch_size=BATCH_SIZE,
                                                  class_mode='categorical'
                                                  )
        
        classifier=Sequential()
        
        classifier.add(Conv2D(16,(3,3),input_shape=(128,1288,3),activation='relu'))
        
        classifier.add(MaxPooling2D(pool_size=(2,2)))
        classifier.add(BatchNormalization(axis=-1))
        
        classifier.add(Conv2D(32,(3,3),activation='relu'))
        classifier.add(MaxPooling2D(pool_size=(2,2)))
        classifier.add(BatchNormalization(axis=-1))
        
        classifier.add(Flatten())
        
        classifier.add(Dense(units=128,activation='relu'))
        classifier.add(BatchNormalization())
        classifier.add(Dropout(rate=0.5))
        classifier.add(Dense(6,activation='softmax'))
        
        opt= tf.keras.optimizers.Adam(learning_rate=0.001 , decay=0.001/(50*0.5))
        
        
        classifier.compile(optimizer=opt,loss='sparse_categorical_crossentropy',metrics=['accuracy'])
        
        history=classifier.fit(training_set,epochs=50,validation_data=test_set,verbose=1)
        classifier.save('model.h5')
        
        

## this is the error:##

this is the first error of the code and only error

        Epoch 1/50
        ---------------------------------------------------------------------------
        InvalidArgumentError                      Traceback (most recent call last)
        <ipython-input-69-16dc3b00a1b3> in <module>()
        ----> 1 history=classifier.fit(training_set,epochs=50,validation_data=test_set,verbose=1)
              2 classifier.save('model.h5')
        
        1 frames
        /usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
             53     ctx.ensure_initialized()
             54     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
        ---> 55                                         inputs, attrs, num_outputs)
             56   except core._NotOkStatusException as e:
             57     if name is not None:
        
        InvalidArgumentError: Graph execution error:
        
        Detected at node 'sequential_12/flatten_12/Reshape' defined at (most recent call last):
            File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
              "__main__", mod_spec)
            File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
              exec(code, run_globals)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py", line 16, in <module>
              app.launch_new_instance()
            File "/usr/local/lib/python3.7/dist-packages/traitlets/config/application.py", line 846, in launch_instance
              app.start()
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelapp.py", line 499, in start
              self.io_loop.start()
            File "/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py", line 132, in start
              self.asyncio_loop.run_forever()
            File "/usr/lib/python3.7/asyncio/base_events.py", line 541, in run_forever
              self._run_once()
            File "/usr/lib/python3.7/asyncio/base_events.py", line 1786, in _run_once
              handle._run()
            File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
              self._context.run(self._callback, *self._args)
            File "/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py", line 122, in _handle_events
              handler_func(fileobj, events)
            File "/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 577, in _handle_events
              self._handle_recv()
            File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 606, in _handle_recv
              self._run_callback(callback, msg)
            File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 556, in _run_callback
              callback(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 283, in dispatcher
              return self.dispatch_shell(stream, msg)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 233, in dispatch_shell
              handler(stream, idents, msg)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 399, in execute_request
              user_expressions, allow_stdin)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/ipkernel.py", line 208, in do_execute
              res = shell.run_cell(code, store_history=store_history, silent=silent)
            File "/usr/local/lib/python3.7/dist-packages/ipykernel/zmqshell.py", line 537, in run_cell
              return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2718, in run_cell
              interactivity=interactivity, compiler=compiler, result=result)
            File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2822, in run_ast_nodes
              if self.run_code(code, result):
            File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2882, in run_code
              exec(code_obj, self.user_global_ns, self.user_ns)
            File "<ipython-input-69-16dc3b00a1b3>", line 1, in <module>
              history=classifier.fit(training_set,epochs=50,validation_data=test_set,verbose=1)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1384, in fit
              tmp_logs = self.train_function(iterator)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1021, in train_function
              return step_function(self, iterator)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1010, in step_function
              outputs = model.distribute_strategy.run(run_step, args=(data,))
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1000, in run_step
              outputs = model.train_step(data)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 859, in train_step
              y_pred = self(x, training=True)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1096, in __call__
              outputs = call_fn(inputs, *args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 92, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/sequential.py", line 374, in call
              return super(Sequential, self).call(inputs, training=training, mask=mask)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/functional.py", line 452, in call
              inputs, training=training, mask=mask)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/functional.py", line 589, in _run_internal_graph
              outputs = node.layer(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1096, in __call__
              outputs = call_fn(inputs, *args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 92, in error_handler
              return fn(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/keras/layers/core/flatten.py", line 96, in call
              return tf.reshape(inputs, flattened_shape)
        Node: 'sequential_12/flatten_12/Reshape'
        Input to reshape is a tensor with 7872512 values, but the requested shape requires a multiple of 307200
             [[{{node sequential_12/flatten_12/Reshape}}]] [Op:__inference_train_function_10733]

I'm running this on google colaboratory. Is there a module that I
should install? Or is it purely an error on the code itself?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文