Ошибка ValueError при объединении Tensorflow с разреженными матрицами Склеарна - PullRequest
0 голосов
/ 29 апреля 2018

Здравствуйте, позвольте мне начать с того, что мой опыт работы со StackOverflow чрезвычайно ограничен, так же как и мой опыт программирования. Само собой разумеется, что если я сделаю какие-либо непреднамеренные ошибки в формате StackOverflow или в формате моего кода, я приношу свои извинения и могу редактировать свое сообщение.

Я провел обширное исследование, чтобы не создавать дубликаты и не находил посты типа этой , но как бы я ни старался, я либо не могу извлечь смысл из поста, либо слишком мало знаю в как это реализовать

Так вот моя проблема:

Я похож на алгоритм машинного обучения для анализа настроений и использую Sklearns CountVectorizer и Tfidf для примерно 6000 твитов, которые превратились в следующее <6612x9703 sparse matrix of type '<class 'numpy.float64'> with 47719 stored elements in Compressed Sparse Row format>

Оттуда я пытаюсь тренироваться, используя следующую функцию:

X = tf.placeholder("float", [None, X_train_spmx.shape[0]])
y = tf.placeholder("float")


def train_neural_net(x):
prediction = neural_net_model(x)

cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits_v2(logits=prediction, labels=y) )
optimizer = tf.train.AdamOptimizer().minimize(cost)

hm_epochs = 10
with tf.Session() as sess:

    sess.run(tf.global_variables_initializer())

    for epoch in range(hm_epochs):
        epoch_loss = 0

        i = 0
        while i < len(y_train):
            start = i
            end = i+batch_size

            batch_x = np.array(X_train_spmx[start:end])
            print(batch_x)
            batch_y = np.array(y_train[start:end])
            print(batch_y)

            _, c = sess.run([optimizer, cost], feed_dict={x: batch_x, y: batch_y})
            epoch_loss += c

        print('Epoch', epoch, 'completed out of',hm_epochs,'loss:',epoch_loss)

    correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))
    accuracy = tf.reduce_mean(tf.cast(correct, 'float'))
    print('Accuracy:',accuracy.eval({x:X_test, y:y_test}))

train_neural_net(X)

Однако, когда я бегу, я получаю ошибку:

    ValueError                                Traceback (most recent call 
    last)
    <ipython-input-16-8130c429fbca> in <module>()
         32         print('Accuracy:',accuracy.eval({x:X_test, y:y_test}))
         33 
    ---> 34 train_neural_net(X)

    <ipython-input-16-8130c429fbca> in train_neural_net(x)
         23                 print(batch_y)
         24 
    ---> 25                 _, c = sess.run([optimizer, cost], feed_dict= . 
  {x: batch_x, y: batch_y})
         26                 epoch_loss += c
         27 

    /anaconda3/lib/python3.6/site- 
   packages/tensorflow/python/client/session.py in run(self, fetches, 
    feed_dict, options, run_metadata)
        903     try:
        904       result = self._run(None, fetches, feed_dict, options_ptr,
    --> 905                          run_metadata_ptr)
        906       if run_metadata:
        907         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

    /anaconda3/lib/python3.6/site- 
   packages/tensorflow/python/client/session.py in _run(self, handle, 
    fetches, feed_dict, options, run_metadata)
       1104             feed_handles[subfeed_t] = subfeed_val
       1105           else:
    -> 1106             np_val = np.asarray(subfeed_val, 
    dtype=subfeed_dtype)
       1107 
       1108           if (not is_tensor_handle_feed and

    /anaconda3/lib/python3.6/site-packages/numpy/core/numeric.py in 
    asarray(a, dtype, order)
        490 
        491     """
    --> 492     return array(a, dtype, copy=False, order=order)
        493 
        494 

    ValueError: setting an array element with a sequence.

Edit:

После рекомендации, согласно которой я превращаю запасную матрицу в массив, используя .toarray(), я получаю ошибку ValueError: Cannot feed value of shape (128, 9703) for Tensor 'Placeholder_2:0', which has shape '(?, 6612)' , которую я исследовал, и считаю, что она не совпадает с здесь , поскольку у меня разные значения в PlaceHolder, между тем ссылка имела разные размеры. Все еще не знаете, куда идти, спасибо!

Есть идеи? Заранее спасибо

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