Невозможно правильно загрузить набор данных csv на keras DNN - PullRequest
0 голосов
/ 16 июня 2020

Я использую [набор данных Kaggle] [1] для многоязычного языка жестов. Всего 785 столбцов, включая один столбец с метками для набора данных CSV. Также рекомендуется использовать CSV для изображений, а не для реальных изображений

Следующий код работает нормально, пока mode.fit () не выдаст ошибку

"""CSV_MODEL.ipynb

Automatically generated by Collaboratory.

The original file is located at
    https://colab.research.google.com/drive/1u8GDJe-sWtz12YO7YusClJR9UeDJ852Y
"""

from google.colab import files
uploaded = files.upload()

from keras.models import Sequential
from keras.layers import Dense
import numpy

numpy.random.seed(23)

import csv
import numpy
filename = 'sign_mnist_train.csv'
raw_data = open(filename, 'rt')
reader = csv.reader(raw_data, delimiter=',', quoting=csv.QUOTE_NONE)
x = list(reader)
data = numpy.array(x).astype('float')
print(data.shape)

print(data.shape[1])
X = data[:,0:784]
Y = data[:,784]

print(X.shape[1])
print(X)

model = Sequential()
model.add(Dense(512,input_dim = 784,activation='relu'))
model.add(Dense(24,activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())

model.fit(X,Y,epochs=100,batch_size=20)```

и выдаст ошибку вот так

ValueError: Error when checking target: expected dense_34 to have shape (24,) but got array with shape (1,)
[1]: https://www.kaggle.com/datamunge/sign-language-mnist

1 Ответ

0 голосов
/ 16 июня 2020

Когда вы используете

loss ='ategorical_crossentropy '

, вы должны сначала закодировать метку (одна горячая кодировка), используя

keras.utils.to_categorical (Y)

, или вы можете изменить функцию потерь на

loss = 'sparse_categorical_crossentropy'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...