微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 tfrecords 转换为 numpy?

如何解决如何将 tfrecords 转换为 numpy?

我确实在这个记录中发现了类似的东西: How can I convert TFRecords into numpy arrays?。但是,它在我们使用图像作为数据的上下文中提到了这一点,而不是与 RNAseq 矩阵非常相似的数据,该矩阵的列名(来自原始矩阵)存储为字符串,值存储为 tf.float32。所以真正的问题是如何将这两个东西作为张量,然后将它们组合起来以获得完整的矩阵以供进一步分析。 最后,我需要 6020 X 1422 的矩阵,其中 6020 是行(值)和 1422 列。

我使用以下命令读取 TFRecord 文件并将所有数据作为张量获取

# its a mapping function
def parse_element(element):
    data = {
        'indices': tf.io.FixedLenSequenceFeature((),tf.int64,allow_missing = True),'values': tf.io.FixedLenSequenceFeature((),tf.float32,'names': tf.io.FixedLenFeature((),tf.string),}
    # create an example:
    content = tf.io.parse_single_example(element,data)
    #extract every element to theire respective tensors/ placeholders.
    indices = content['indices']
    values = content['values']
    colnames = content['names']
    
    return (indices,values,colnames)

# We create a TFRecordDataset by pointing it to the TFRecord file on our disk,and 
# then apply our prevIoUs parsing function to every extracted Example. 
# This returns a dataset:
#
def get_dataset(filename):
    # create the dataset
    dataset = tf.data.TFRecordDataset(filename,compression_type="GZIP")
    # pass every single feature through our mapping function.
    dataset = dataset.map(parse_element)
    # return the whole dataset
    return dataset

# load tfrecords using functions defined above get_dataset() and parse_element().
dataset_valid = get_dataset("TF_records/validate.tfrecords")
#print one record to have a look.
for data in dataset_valid.take(1):
    print(data[0])#indicies
    print(data[1])#values
    print(data[2])#colnames

这可能是一个非常幼稚的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。