Ошибка при выполнении sess.run() ValueError: установка элемента массива с последовательностью

Эта ошибка возникает, когда я пытаюсь запустить этап обучения. Набор данных представляет собой набор данных MNIST от Kaggle. Я использую нейронную сеть для предсказания рукописных цифр:

Входные данные: [33600, 784] преобразовано в [784, 33600]

Архитектура нейронной сети:

Уровень 1 имеет W1 1000 на 784 отн. 200 с softmax
Смещения не используются

Код:

print(X_train[:, 0].reshape(-1, 1).shape,"   ",y_train[:,0].reshape(-1,1).shape)`

Выход: (784, 1) (10, 1)

Код:

X, Y = tf.placeholder(tf.float32,[784, None]), tf.placeholder(tf.float32,[10, None])

logits = forward_propagation(X, parameters)

cost = compute_cost(logits, Y)
optimizer = tf.train.AdamOptimizer(learning_rate=1e-3).minimize(cost)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    _,c = sess.run([optimizer,cost], feed_dict= {X:X_train[:,0].reshape(-1,1),
                                                 Y:y_train[:, 0].reshape(-1,1)})
print(c)

Выход:

ValueError         Traceback (most recent call 
last)
<ipython-input-41-f78f499b0606> in <module>()
8 with tf.Session() as sess:
9     sess.run(tf.global_variables_initializer())
---> 10     _,c = sess.run([optimizer,cost], feed_dict= 
{X:np.asarray(X_train), Y:np.asarray(y_train)})
11 print(c)

.......
.......

ValueError: setting an array element with a sequence.

Пожалуйста, исправьте код, если можете.


person NEERAJ TRIPATHI    schedule 04.04.2019    source источник


Ответы (1)


Я получил решение. Как упоминалось в ответах на многие другие подобные вопросы, проблема, как правило, связана с формой и типом массивов, предоставляемых в feed_dict. Я сосредоточился только на X:X_train[:,0].reshape(-1,1), но это была правильная форма и тип. Ошибка была в Y:y_train[:, 0].reshape(-1,1). Я не смог обнаружить эту ошибку, потому что я применил one_hot_encoding к y_train, но забыл использовать метод .toarray() после преобразования. Таким образом, форма y_train казалась правильной, но на самом деле она была неправильной.

В качестве общего предложения после рассмотрения многих подобных вопросов я бы посоветовал тщательно проверить формы, типы и содержимое массивов, передаваемых в feed_dict.

person NEERAJ TRIPATHI    schedule 04.04.2019