Может кто-нибудь помочь мне понять это? Я использую keras для построения нейронной сети.
Я загрузил CSV-файл с тремя значениями чисел c и меткой в диапазоне от 1 до 4.
Для построения своей нейронной сети я использую следующий код, единственная важная часть где есть: <-------- эта строка </strong> (не удалось выделить код).
data_train <- train.df[,1:3] %>% as.matrix <-------- this line
# Build the neural network
model <- keras_model_sequential()
model %>%
layer_dense(units = 10, activation = 'linear', input_shape = c(3)) %>%
layer_dense(units = 20, activation = 'relu') %>%
layer_dense(units = 20, activation = 'tanh') %>%
layer_dense(units = 4, activation = 'softmax')
# Compile it
model %>% compile(
optimizer = 'adam',
loss = 'sparse_categorical_crossentropy',
metrics = c('accuracy'))
# Train it
model %>% fit(data_train %>% as.matrix, train.df[,4], epochs = 100, batch_size=1, validation_split=0.2) <-------- this line
********* the line above
# Make predictions
predictions <- model %>% predict(test.df[,c(1,2,3)] %>% as.matrix)
Дело в том, , если я не вызываю as.matrix внутри функции, т. е. если я вызываю fit () с использованием:
model %>% fit(data_train, train.df[,4], epochs = 100, batch_size=1, validation_split=0.2) <-------- this line
, функция выдает следующую ошибку:
Error in py_call_impl(callable, dots$args, dots$keywords) :
ValueError: No data provided for "dense_28_input". Need data for each key in: ['dense_28_input']
Кажется, что число 28 в 'density_28_input' выше - случайное число, которое меняется в зависимости от исполнения.
Я просто не понимаю, почему это происходит. Объект должен быть матрицей, если я уже вызывал as.matrix раньше.
Это предназначено? Это происходит на вашей машине? Я могу загрузить файл CSV, если кто-то хочет воспроизвести вывод. Вы можете скачать его здесь: https://drive.google.com/open?id=1T8iyt_fUQV51oghv3TUJ7ty_zdHPPjB-