ValueError: неверный литерал для float() Keras

Я создаю простую нейронную сеть, используя keras.

Каждый элемент обучающих данных имеет 100 измерений, и я читаю метки элементов из текстового файла.

f = open('maleE', "rt")
labelsTrain = [line.rstrip() for line in f.readlines()]
f.close()

Метки представляют собой строки со следующей структурой: number_text.

Чтобы подогнать модель к обучающим данным:

model.fit(train, labelsTrain, epochs= 20000, batch_size= 1350)

И я получаю следующую ошибку:

File "DNN.py", line 112, in <module>
    model.fit(train, labelsTrain, epochs=20000, batch_size=1350)
  File "/Users/renzo/PyEnvironments/tensorKeras/lib/python2.7/site-packages/keras/models.py", line 867, in fit
    initial_epoch=initial_epoch)
  File "/Users/renzo/PyEnvironments/tensorKeras/lib/python2.7/site-packages/keras/engine/training.py", line 1598, in fit
    validation_steps=validation_steps)
  File "/Users/renzo/PyEnvironments/tensorKeras/lib/python2.7/site-packages/keras/engine/training.py", line 1183, in _fit_loop
    outs = f(ins_batch)
  File "/Users/renzo/PyEnvironments/tensorKeras/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py", line 2273, in __call__
    **self.session_kwargs)
  File "/Users/renzo/PyEnvironments/tensorKeras/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 889, in run
    run_metadata_ptr)
  File "/Users/renzo/PyEnvironments/tensorKeras/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1087, in _run
    np_val = np.asarray(subfeed_val, dtype=subfeed_dtype)
  File "/Users/renzo/PyEnvironments/tensorKeras/lib/python2.7/site-packages/numpy/core/numeric.py", line 531, in asarray
    return array(a, dtype, copy=False, order=order)
ValueError: invalid literal for float(): 225_sokode

Метка представляет собой элемент 279 из списка 378 меток.


person Ren91    schedule 10.09.2017    source источник
comment
Кажется, что один из ваших входных данных имеет символ, который не является допустимым числом с плавающей запятой.   -  person Daniel Möller    schedule 11.09.2017


Ответы (1)


Прежде всего, выберите уникальное имя для каждого из ваших классов. Я говорю это, потому что не понимаю, что такое number в ваших ярлыках классов (если это не одно и то же для каждого класса, используйте str.split(), чтобы просто сохранить text). Затем вы должны закодировать свои строковые метки. Например, см. этот пост. для быстрого кодирования меток.

person Matin    schedule 10.09.2017