首页 > 解决方案 > Tensorflow:从张量数组创建数据集

问题描述

我想从未知数量的张量创建一个tf.data.Dataset 。

每个张量都包含在一个 hdf5 文件中。
张量的数量将在运行时确定。
此外,每个张量都有一对关系。这必须保存在数据集中。

目前的尝试:

import deepdish as dd

def createDatasets(n_files):
  d = []
  r = []
  for i in range(n_files):
    d.append( (dd.io.load('../data/prepared/clean_'+str(i)+'.h5')['dataset'], dd.io.load('../data/prepared/dirty_'+str(i)+'.h5')['dataset']) )
    r.append(d[i][1])
  both = tf.data.Dataset.from_tensors(tuple(d))
  rfi = tf.data.Dataset.from_tensors(tuple(r))
  return both, rfi

问题是这些元组作为单个条目存储在数据集中。
即每个数据集的基数始终为 1,尽管使用了张量的数量。

>>> both, rfi = createDatasets(5)
>>> rfi
<TensorDataset shapes: ((100, 15, 4096, 4), (100, 15, 4096, 4), (100, 15, 4096, 4), (100, 15, 4096, 4), (100, 15, 4096, 4)), types: (tf.complex64, tf.complex64, tf.complex64, tf.complex64, tf.complex64)>
>>> dataset_length = [i for i,_ in enumerate(rfi)][-1] + 1
>>> print(dataset_length)
1

实际上,我想要完成的是为形状和类型“删除外括号”。

标签: pythontensorflowmachine-learningdeep-learningtensorflow-datasets

解决方案


推荐阅读