Подготовить собственный набор данных слов на языке pytorch

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

Слова представляют собой битовые строки, а язык определяется шаблоном. мой набор данных выглядит так

      001101000010010, False
111001001000000, False
111011101001100, False
011111000101101, False
10000110000110001100, True
011100100001010, False
....

но при необходимости я могу создать набор данных другим способом (я знаю, что такое «настоящая» функция, которая определяет язык.

Я думал загрузить набор данных вот так, но он не работает:

      class myDataset(T.utils.data.Dataset):
# WORD  T/f
# 010000101010000  FALSE

def __init__(self, src_file, m_rows=None):
    all_xy = np.loadtxt(src_file, max_rows=m_rows,
                        usecols=[0, 1], delimiter=",", skiprows=0, dtype=np.int)

    tmp_x = all_xy[:, [0]]
    tmp_y = all_xy[:, 1].reshape(-1, 1)  # 2-D required

    self.x_data = T.tensor(tmp_x).to(device)
    self.y_data = T.tensor(tmp_y).to(device)
    self.x_data = tmp_x
    self.y_data = tmp_y

но я получаю ошибку

OverflowError: Python int слишком велик для преобразования в C long

поскольку число слишком велико, при обработке цепочки битов как текста

      tmp_x = np.loadtxt(src_file, max_rows=m_rows, usecols=[0], delimiter=",", skiprows=0, dtype=np.str)

Я получаю ошибку

TypeError: невозможно преобразовать np.ndarray типа numpy.str_. Поддерживаются только следующие типы: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint8 и bool.

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

0 ответов

Другие вопросы по тегам