0

I am trying to train the Iris dataset having 3 classes using Multilayer Perception Model-based Deep Learning model but getting InvalidArgumentError: Graph execution error whereas taking the correct number of classes i.e. 3. To get the solution, I have referred Invalid Argument Error / Graph Execution Error

Dataset description: https://www.kaggle.com/datasets/uciml/iris --[150 rows x 5 columns] --number of independent features is 4 --the number of target features is 1 having 3 classes. I have converted categorical data into numerical data in a csv file like: 0,1, and 2. -- The Header row is removed from the CSV file then it is read by pandas.

Below are the code and errors I got. I don't know whether it's because of my dataset or something else.

import pandas as pd
from sklearn.model_selection import train_test_split
from keras.models import Sequential 
from keras.layers import Dense
from keras.utils import to_categorical

df = pd.read_csv('./datasets/Iris.csv')  
print(df) 

number_of_inputs = len(df.columns) - 1 
data_train = df.iloc[:, :number_of_inputs]
print("numbr of independent features", number_of_inputs) 
data_train = data_train.to_numpy() # Converting dataframe to Numpy array
target_train = df.iloc[:, number_of_inputs] 
target_train = target_train.to_numpy() 
print("target_train",target_train) 
# one hot encode output variable
target_train = to_categorical(target_train)
print("target_train",target_train) 

X_train, X_test, y_train, y_test = train_test_split(data_train, target_train, test_size = 0.2, random_state =2)
print(X_train.shape, X_test.shape)

# define Multilayer Perception Model (MLP) based DL model
model = Sequential()
model.add(Dense(25, input_dim=4, activation='relu'))
model.add(Dense(3, activation='softmax')) 
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy']) 

# fit model
history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=500, verbose=0)

# evaluate the model
_, train_acc = model.evaluate(X_train, y_train, verbose=0) 
_, test_acc = model.evaluate(X_test, y_test, verbose=0)
print('Train: %.3f, Test: %.3f' % (train_acc, test_acc))  

Error: Traceback (most recent call last):

File "D:\testing1.py", line 48, in history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=500, verbose=0)

File "C:\Users\akdey\anaconda3\lib\site-packages\keras\utils\traceback_utils.py", line 70, in error_handler raise e.with_traceback(filtered_tb) from None

File "C:\Users\akdey\anaconda3\lib\site-packages\tensorflow\python\eager\execute.py", line 52, in quick_execute tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,

InvalidArgumentError: Graph execution error

0 Answers0