Как изменить входные данные для tflearn? - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь изменить свои данные, чтобы они были совместимы с tflearn, каждая строка в моих данных имеет форму (1300, 13). Поэтому после того, как я загрузил данные и поместил каждую из этих (1300, 13) фигурных строк в массив с массивами, как этот:

data_path = os.path.dirname(os.path.realpath(__file__)) + '/../data/data.csv'
train = data.sample(frac=0.8, random_state=200)
test = data.drop(train.index)

train_x = train['lowLevel.mfcc'].as_matrix()
test_x = test['lowLevel.mfcc'].as_matrix()

print(train_x.shape) # (8,)
print(train_x[0].shape) # (1300, 13)


train_y = to_categorical(train['category'], len(categories))
test_y = to_categorical(test['category'], len(categories))

train_x = train_x.reshape([-1, 1300, 13, 1])
test_x = test_x.reshape([-1, 1300, 13, 1])

# ValueError: cannot reshape array of size 8 into shape (1300,13,1)

Не уверен, что здесь делать, я копирую учебник MNIST из документации: их данные в форме соответственно train_x train_y test_x test_y (55000, 10) (55000, 10) (10000, 784) (10000, 10)

Форма моих данных примерно такая (загрузка только 10 строк, пока я не заставлю это работать): (8,) (8, 1) (2,) (2, 1) Когда я печатаю train_x, это выглядит так: enter image description here

Не уверен, что случилось со всеми массивами, так как я говорю Пандам загрузить столбец как матрицу ...

Данные MNIST могут быть идеально изменены следующим образом:

train_x, train_y, test_x, test_y = mnist.load_data(one_hot=True)

train_x = train_x.reshape([-1, 28, 28, 1])
test_x = test_x.reshape([-1, 28, 28, 1])

Я загружаю свои данные из фрейма данных pandas и не знаю, как их сформировать.

Я настроил свой входной слой в tflearn так:

import tflearn
from tflearn.layers.core import input_data
from tflearn.data_utils import to_categorical

net = input_data(shape=[None, 1300, 13, 1], name='input')

Кто-нибудь знает, что происходит?

1 Ответ

0 голосов
/ 28 апреля 2018

Разобрался, пришлось предварительно выделить массивы:

train_x = np.empty((train['lowLevel.mfcc'].size, 1300, 13))
test_x = np.empty((test['lowLevel.mfcc'].size, 1300, 13))

for index, item in enumerate(train['lowLevel.mfcc']):
    train_x[index] = item

for index, item in enumerate(test['lowLevel.mfcc']):
    test_x[index] = item
...