اصولا 3 نوع داده ای int,float , byte را میشه در فایل tfrecord ذخیره کرد برای تبدیل این نوع داده به صورت زیر عمل کنید:
import tensorflow as tf
def _bytes_feature(value):
return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
def _float_feature(value):
return tf.train.Feature(float_list=tf.train.FloatList(value=[value]))
def _int64_feature(value):
return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
برای تبدیل فایل json هم به tfrecord هم به صورت زیر تبدیل کنید:
import gzip
import tensorflow as tf
tfrecords_filename ='file.tfrecords'
tf_record_writer = tf.python_io.TFRecordWriter(tfrecords_filename)
gdata = gzip.open('file.json','r')
for data in gdata:
record = eval(data)
example = tf.train.Example
(features=tf.train.Features(feature={
'reviewerID': _bytes_feature(record['field1']),
'overall': _float_feature(record['field2']),
'unixReviewTime':_int64_feature(record['field3'])
}))
tf_record_writer.write(example.SerializeToString())