Формат Tensorflow decode_csv record_defaults - PullRequest
       21

Формат Tensorflow decode_csv record_defaults

0 голосов
/ 01 августа 2020

Вопрос

Пожалуйста, объясните правильный формат record_defaults из tf.io.decode_csv.

tf.io.decode_csv record_defaults сообщает:

record_defaults Список объектов Tensor с указанными c типами. Допустимые типы: float32, float64, int32, int64, string. Один тензор для каждого столбца входной записи, либо со скалярным значением по умолчанию для этого столбца, либо с пустым вектором, если столбец требуется.

In Чтение файлов CSV в TensorFlow из Список пользователей Databricks список.

def create_file_reader_ops(filename_queue):
    reader = tf.TextLineReader(skip_header_lines=1)
    _, csv_row = reader.read(filename_queue)
    record_defaults = [[""], [""], [0], [0], [0], [0]]                   # <-----
    country, code, gold, silver, bronze, total = tf.decode_csv(csv_row, record_defaults=record_defaults)
    features = tf.pack([gold, silver, bronze])
    return features, country

Так же Как декодировать файл csv с длинными строками в тензорном потоке с помощью tf.decode_csv? .

record_defaults=[[1]]*1800

Ошибка формы decode_csv TensorFlow предполагает, что это должен быть список списка.

Ваша default_record, безусловно, является списком тензорных объектов (или объектов, конвертируемых в тензоры), но я думаю, что сообщение об ошибке сообщая, что они должны быть тензорами ранга 1, а не тензорами ранга 0 , как в вашем случае.

default_record_1 = [['./'], [-1]] # do this!
default_record_2 = ['./', -1] # this is what you do now

decoded_1 = tf.decode_csv(my_line, default_record_1)

Однако Практическое машинное обучение с помощью Scikit -Learn, Keras и TensorFlow, 2-е издание CH13 использует список, и код работает.

n_inputs = 8 # X_train.shape[-1]

@tf.function
def preprocess(line):
    defs = [0.] * n_inputs + [tf.constant([], dtype=tf.float32)]  <-----
    fields = tf.io.decode_csv(line, record_defaults=defs)
    x = tf.stack(fields[:-1])
    y = tf.stack(fields[-1:])
    return (x - X_mean) / X_std, y

Поэтому мне интересно, какой формат использовать и почему.

...