khe*_*edi 5 python deep-learning tensorflow tensorflow2.0 tf.data.dataset
我有三个不同的 .csv 数据集,我通常使用 pandas 读取它们并训练深度学习模型。每个数据都是一个 m 矩阵,其中 n 是样本数,m 是特征数。读取数据后,我进行一些重塑,然后使用以下方法将它们输入到我的深度学习模型中feed_dict:
data1 = pd.DataFrame(np.random.uniform(low=0, high=1, size=(10,3)), columns=['A', 'B', 'C'])
data2 = pd.DataFrame(np.random.uniform(low=0, high=1, size=(10,3)), columns=['A', 'B', 'C'])
data3 = pd.DataFrame(np.random.uniform(low=0, high=1, size=(10,3)), columns=['A', 'B', 'C'])
data = pd.concat([data1, data2, data2], axis=1)
# Some deep learning model that work with data
# An optimizer
with tf.compat.v1.Session() as sess:
sess.run(init)
sess.run(optimizer, feed_dict={SOME VARIABLE: data})
Run Code Online (Sandbox Code Playgroud)
然而,我的数据太大,现在无法放入内存,我想知道如何使用 tf.data 来读取数据,而不是使用 pandas。抱歉,如果我提供的脚本是伪代码而不是我的实际代码。
适用于TF2.0及以上版本。有几种方法可以从 CSV 文件创建数据集:
我相信您正在使用 pandas 读取 CSV 文件,然后执行此操作
tf.data.Dataset.from_tensor_slices(dict(pandaDF))
你也可以尝试一下这个
tf.data.experimental.make_csv_dataset
或这个
tf.io.decode_csv
还有这个
tf.data.experimental.CsvDataset
详细信息在这里:加载 CSV
如果您需要在使用 Pandas 加载之前进行处理,那么您可以按照当前的方法进行操作pd.concat([data1, data2, data2], axis=1),但使用该concatentate函数
data1 = pd.DataFrame(np.random.uniform(low=0, high=1, size=(10,3)), columns=['A', 'B', 'C'])
data2 = pd.DataFrame(np.random.uniform(low=0, high=1, size=(10,3)), columns=['A', 'B', 'C'])
data3 = pd.DataFrame(np.random.uniform(low=0, high=1, size=(10,3)), columns=['A', 'B', 'C'])
tf_dataset = tf.data.Dataset.from_tensor_slices(dict(data1))
tf_dataset = tf_dataset.concatentate(tf.data.Dataset.from_tensor_slices(dict(data2)))
tf_dataset = tf_dataset.concatentate(tf.data.Dataset.from_tensor_slices(dict(data3)))
Run Code Online (Sandbox Code Playgroud)
有关连接的更多信息
| 归档时间: |
|
| 查看次数: |
7417 次 |
| 最近记录: |