Tensorflow, ValueError: установка элемента массива с последовательностью - PullRequest
0 голосов
/ 01 июня 2018

При попытке обучить мой тензор потока графа я получаю сообщение об ошибке:

ValueError: установка элемента массива с последовательностью

, происходящей в этой строке кода,в функции feed_dict:

# run the session and train the model
        _, c = sess.run([optimizer, cost], feed_dict = {input_x: x_train_v, output_y: y_train})

Кажется, проблема с моей выходной переменной (y_train).Это список размера (25) внутри фрейма данных pandas.Уже проверено, имеет ли каждый список одинаковую длину с

print(y_train.shape) #(23904,)
print(y_train.apply(type)[0]) #<class 'list'>

n = len(y_train[0])
if all(len(x) == n for x in y_train):
    print("true")  #true  

Переменная создается со следующим кодом:

dataframe['category_number'] = ""
for _ in range(len(dataframe)):
    string = dataframe.at[_, 'Product Categorization Tier 1'].strip()
    number = category_list.index(string)   
    # saving as category vector
    vector = [0] * 25 
    vector[number] = 1
    dataframe.at[_,'category_number'] = vector

y_train = train_df["category_number"]

Редактировать: Функция стоимости и оптимизатор

prediction = neural_network_model(input_x )
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=output_y))
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

Полное сообщение об ошибке: enter image description here

1 Ответ

0 голосов
/ 01 июня 2018

Попробуйте что-то вроде

y_train = []
for _ in range(len(dataframe)):
    string = dataframe.at[_, 'Product Categorization Tier 1'].strip()
    number = category_list.index(string)   
    # saving as category vector
    vector = [0] * 25 
    vector[number] = 1
    y_train.append(vector)

И убедитесь, что вы получаете массив 2d-int, а не массив объектов

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