ValueError: Input 0 is incompatible with layer conv2d_1: expected ndim=4, found ndim=3
up vote
1
down vote
favorite
After inquiring into the questions already asked about this problem, I keep presenting it. Im trying to classify letters from A to D. All input images are 64x64 and graycolor.
The first layer of my CNN is:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape = input_shape, activation = 'relu'))
And input_shape
it's coming from:
# Define the number of classes
num_classes = 4
labels_name='A':0,'B':1,'C':2,'D':3
img_data_list=
labels_list=
for dataset in data_dir_list:
img_list=os.listdir(data_path+'/'+ dataset)
print ('Loading the images of dataset-'+'n'.format(dataset))
label = labels_name[dataset]
for img in img_list:
input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )
input_img=cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
input_img_resize=cv2.resize(input_img,(128,128))
img_data_list.append(input_img_resize)
labels_list.append(label)
img_data = np.array(img_data_list)
img_data = img_data.astype('float32')
img_data /= 255
print (img_data.shape)
labels = np.array(labels_list)
print(np.unique(labels,return_counts=True))
#convert class labels to on-hot encoding
Y = np_utils.to_categorical(labels, num_classes)
#Shuffle the dataset
x,y = shuffle(img_data,Y, random_state=2)
# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=2)
#Defining the model
input_shape=img_data[0].shape
print(input_shape)
Thanks,
python tensorflow keras conv-neural-network
add a comment |
up vote
1
down vote
favorite
After inquiring into the questions already asked about this problem, I keep presenting it. Im trying to classify letters from A to D. All input images are 64x64 and graycolor.
The first layer of my CNN is:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape = input_shape, activation = 'relu'))
And input_shape
it's coming from:
# Define the number of classes
num_classes = 4
labels_name='A':0,'B':1,'C':2,'D':3
img_data_list=
labels_list=
for dataset in data_dir_list:
img_list=os.listdir(data_path+'/'+ dataset)
print ('Loading the images of dataset-'+'n'.format(dataset))
label = labels_name[dataset]
for img in img_list:
input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )
input_img=cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
input_img_resize=cv2.resize(input_img,(128,128))
img_data_list.append(input_img_resize)
labels_list.append(label)
img_data = np.array(img_data_list)
img_data = img_data.astype('float32')
img_data /= 255
print (img_data.shape)
labels = np.array(labels_list)
print(np.unique(labels,return_counts=True))
#convert class labels to on-hot encoding
Y = np_utils.to_categorical(labels, num_classes)
#Shuffle the dataset
x,y = shuffle(img_data,Y, random_state=2)
# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=2)
#Defining the model
input_shape=img_data[0].shape
print(input_shape)
Thanks,
python tensorflow keras conv-neural-network
What is the value ofinput_shape
?
– today
Nov 11 at 18:58
input_shape=img_data[0].shape
and img_data is coming frominput_shape=img_data[0].shape
– J. Dav
Nov 11 at 20:40
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
After inquiring into the questions already asked about this problem, I keep presenting it. Im trying to classify letters from A to D. All input images are 64x64 and graycolor.
The first layer of my CNN is:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape = input_shape, activation = 'relu'))
And input_shape
it's coming from:
# Define the number of classes
num_classes = 4
labels_name='A':0,'B':1,'C':2,'D':3
img_data_list=
labels_list=
for dataset in data_dir_list:
img_list=os.listdir(data_path+'/'+ dataset)
print ('Loading the images of dataset-'+'n'.format(dataset))
label = labels_name[dataset]
for img in img_list:
input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )
input_img=cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
input_img_resize=cv2.resize(input_img,(128,128))
img_data_list.append(input_img_resize)
labels_list.append(label)
img_data = np.array(img_data_list)
img_data = img_data.astype('float32')
img_data /= 255
print (img_data.shape)
labels = np.array(labels_list)
print(np.unique(labels,return_counts=True))
#convert class labels to on-hot encoding
Y = np_utils.to_categorical(labels, num_classes)
#Shuffle the dataset
x,y = shuffle(img_data,Y, random_state=2)
# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=2)
#Defining the model
input_shape=img_data[0].shape
print(input_shape)
Thanks,
python tensorflow keras conv-neural-network
After inquiring into the questions already asked about this problem, I keep presenting it. Im trying to classify letters from A to D. All input images are 64x64 and graycolor.
The first layer of my CNN is:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape = input_shape, activation = 'relu'))
And input_shape
it's coming from:
# Define the number of classes
num_classes = 4
labels_name='A':0,'B':1,'C':2,'D':3
img_data_list=
labels_list=
for dataset in data_dir_list:
img_list=os.listdir(data_path+'/'+ dataset)
print ('Loading the images of dataset-'+'n'.format(dataset))
label = labels_name[dataset]
for img in img_list:
input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )
input_img=cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
input_img_resize=cv2.resize(input_img,(128,128))
img_data_list.append(input_img_resize)
labels_list.append(label)
img_data = np.array(img_data_list)
img_data = img_data.astype('float32')
img_data /= 255
print (img_data.shape)
labels = np.array(labels_list)
print(np.unique(labels,return_counts=True))
#convert class labels to on-hot encoding
Y = np_utils.to_categorical(labels, num_classes)
#Shuffle the dataset
x,y = shuffle(img_data,Y, random_state=2)
# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=2)
#Defining the model
input_shape=img_data[0].shape
print(input_shape)
Thanks,
python tensorflow keras conv-neural-network
python tensorflow keras conv-neural-network
asked Nov 11 at 13:48
J. Dav
113
113
What is the value ofinput_shape
?
– today
Nov 11 at 18:58
input_shape=img_data[0].shape
and img_data is coming frominput_shape=img_data[0].shape
– J. Dav
Nov 11 at 20:40
add a comment |
What is the value ofinput_shape
?
– today
Nov 11 at 18:58
input_shape=img_data[0].shape
and img_data is coming frominput_shape=img_data[0].shape
– J. Dav
Nov 11 at 20:40
What is the value of
input_shape
?– today
Nov 11 at 18:58
What is the value of
input_shape
?– today
Nov 11 at 18:58
input_shape=img_data[0].shape
and img_data is coming from input_shape=img_data[0].shape
– J. Dav
Nov 11 at 20:40
input_shape=img_data[0].shape
and img_data is coming from input_shape=img_data[0].shape
– J. Dav
Nov 11 at 20:40
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Conv2d expects input of shape (batchsize, w, h, filters).
You need to add a reshape to fit the data before the conv layer:
model.add(Reshape((64, 64, 1)))
This will set your model dimensions to [None, 64,64,1] and should be fine for Conv2d.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Conv2d expects input of shape (batchsize, w, h, filters).
You need to add a reshape to fit the data before the conv layer:
model.add(Reshape((64, 64, 1)))
This will set your model dimensions to [None, 64,64,1] and should be fine for Conv2d.
add a comment |
up vote
0
down vote
Conv2d expects input of shape (batchsize, w, h, filters).
You need to add a reshape to fit the data before the conv layer:
model.add(Reshape((64, 64, 1)))
This will set your model dimensions to [None, 64,64,1] and should be fine for Conv2d.
add a comment |
up vote
0
down vote
up vote
0
down vote
Conv2d expects input of shape (batchsize, w, h, filters).
You need to add a reshape to fit the data before the conv layer:
model.add(Reshape((64, 64, 1)))
This will set your model dimensions to [None, 64,64,1] and should be fine for Conv2d.
Conv2d expects input of shape (batchsize, w, h, filters).
You need to add a reshape to fit the data before the conv layer:
model.add(Reshape((64, 64, 1)))
This will set your model dimensions to [None, 64,64,1] and should be fine for Conv2d.
answered Nov 11 at 20:14
Dinari
1,247322
1,247322
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249386%2fvalueerror-input-0-is-incompatible-with-layer-conv2d-1-expected-ndim-4-found%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What is the value of
input_shape
?– today
Nov 11 at 18:58
input_shape=img_data[0].shape
and img_data is coming frominput_shape=img_data[0].shape
– J. Dav
Nov 11 at 20:40