InvalidArgumentError:图形执行错误:CNN模型
#我在我的模型#中获得了无效的参数错误
在运行此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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论