Numpy array - IndexError: слишком много индексов для массива - PullRequest
0 голосов
/ 28 октября 2019

Я просмотрел темы по этой конкретной теме, но ни одно из решений не применимо к моей ситуации, и мне нужна помощь в этом, пожалуйста. Я пытаюсь подготовить свои данные для обучения, используя модель нейронного языка. Мои данные уже были предварительно обработаны и сохранены в текстовом файле. Пример данных выглядит следующим образом: ["restaurant", "paris", "district", "gunman", "hold", "hostage" ...] и форма массива (10848135,) в соответствии с атрибутом формы массива,Тем не менее, я получаю сообщение об ошибке индекса, когда я пытаюсь нарезать данные с помощью оператора X, y = sequences[:,:-1], sequences[:,-1]

Код выглядит следующим образом:

def encode_words(self, dataset):
        data = dataset.split('\n')
        tokenizer = Tokenizer()
        tokenizer.fit_on_texts(dataset)
        sequences = tokenizer.texts_to_sequences(dataset)
        vocab_size = len(tokenizer.word_index) + 1
        sequences = array(sequences)
        X, y = sequences[:,:-1], sequences[:,-1]
        y = to_categorical(y, num_classes=vocab_size)
        seq_length = X.shape[1]
        return X, y, vocab_size, seq_length, tokenizer

Я понимаю, что это за ошибка, но нене знаю, как это исправить. Пожалуйста, мне нужна помощь, чтобы код работал. Ниже приведено полное сообщение об ошибке:

Traceback (последний вызов был последним):

   File "/home/asifa/anaconda3/deep_learning_project/processor.py", line 15, in <module>
    X,y,vocab_size,seq_length,tokenizer = emb.encode_words(seq_data)

  File "/home/asifa/anaconda3/deep_learning_project/WordEmbedding.py", line 67, in encode_words
    X, y = sequences[:,:-1], sequences[:,-1]

IndexError: too many indices for array

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Массив у вас есть 1D, и вы пытаетесь получить к нему доступ как 2D. проверьте, почему 1D стоит на первом месте, если вы ожидаете 2D.

0 голосов
/ 28 октября 2019

У вас есть 1-й массив, и вы пытаетесь нарезать его в двух измерениях. Вот почему вы получаете эту ошибку.

Ваша форма массива (10848135,), это означает, что у вас есть только 1 измерение. Если вы ожидаете получить второе измерение, из которого вам нужно извлечь массив y, вам необходимо просмотреть файл, поскольку он имеет массив 1d. Следовательно, вы не можете получить доступ таким образом.

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