Я новичок в TensorFlow.Я хочу тренировать 1-D модель.У меня есть однострочные CSV-файлы для каждой строки моих исходных данных.
CSV-файлы выглядят так
csv_file1: 1.1, 1.3, 1.5, 1.5, 1
csv_file2: 2.1, 2.3, 2.7, 2.9, 0
В последнем столбце (содержащем 1 и 0) указаны метки для одного-row csv файлы
По ссылке я написал следующие фрагменты кода.
Я преобразовал CSV-файлы в TFRecord, используя следующий код
with tf.python_io.TFRecordWriter(filename) as writer:
features, label = df_values[:, 1:-1], df_values[:, -1:]
example = tf.train.Example()
example.features.feature["features"].float_list.value.extend(features[0])
example.features.feature["label"].int64_list.value.append(label[0])
writer.write(example.SerializeToString())
Теперь я хочу прочитать файлы, и это код, который я использую.
def _parse_function(data_record):
features = {
'label': tf.FixedLenSequenceFeature([], tf.int64, allow_missing = True),
'features': tf.FixedLenSequenceFeature([], tf.float32, allow_missing = True),
}
sample = tf.parse_single_example(data_record, features)
return sample['features'], sample['label']
filenames = glob.glob("*.tfrecords")
dataset = tf.data.TFRecordDataset(filenames)
dataset = dataset.map(_parse_function)
dataset = dataset.shuffle(buffer_size=10000)
dataset = dataset.batch(batch_len)
# Create a one-shot iterator
iterator = dataset.make_one_shot_iterator()
X,y = iterator.get_next()
Отсюда и начинается проблема. Из документации я понимаю, что делает сессия, но не могу вставить ее в код.Предполагая, что позже я выясню, как использовать
tf.seesion.run ()
Я написал приведенный ниже код, но не знаю, как его на самом деле включитьв мой основной сценарий и далее использовать его для обучения моей модели.
x_train_batch, y_train_batch = tf.train.shuffle_batch(
tensors=[X_train, y_train],
batch_size=batch_size,
capacity=capacity,
min_after_dequeue=min_after_dequeue,
enqueue_many=True,
num_threads=8)
x_train_batch = tf.cast(x_train_batch, tf.float32)
x_train_batch = tf.reshape(x_train_batch, shape=(batch_size, 1,65281))
y_train_batch = tf.cast(y_train_batch, tf.int64)
y_train_batch = tf.one_hot(y_train_batch, num_classes)
Любая помощь относительно того, как действовать дальше, поможет.
PS: Предполагая, что мои данные были загружены в массив np.ar, размер был бы (6571, 65281).Поскольку это астрономические данные, каждая звезда имеет 65781 балл.