我是TensorFlow的初学者。我想训练一维转换模型。 我的原始数据的每一行都有一行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)是单行csv文件的标签
在link之后,我编写了以下代码。
我使用以下代码将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.array中 尺寸为(6571,65281)。 由于是天文数据,每颗恒星都有65781点。