抱歉,如果这是一个小问题,或者我完全错误地将此问题视为错误。

说我有一个像这样的数据集:

[A, [a,b,c,d]], [B, [e,f,g]], [C, [i,j,k,l,m]], ...


大写字母代表大数据块,小写字母代表小数据块。每个大块都与可变数量的小块相关联。

现在,我需要像这样训练我的网络:
每个输入数据点都是一对与目标标签关联的类型(大块,小块)。

(A,a) ----> label 1
(A,b) ----> label 2
(A,c) ----> label 3
(A,d) ----> label 4

(B,e) ----> label 5
(B,f) ----> label 6
...

and so on...


如您所见,大数据块可在多个输入中重复使用。

我想知道将我的初始数据集输入到Tensorflow中的最佳方法。



理念1:
显然,我可以立即重新整理数据集并将其转换为一系列数据点

 (A,a),(A,b),(A,c),(A,d),(B,e),(B,f),...


但这将意味着复制大量块,并且整体上浪费了内存。



想法2:我可以将神经网络分成两个子网络,如下所示:

Big chunk ----> Network 1
                     \
                      \
Small chunk -----------\-----> Network 2 ----> Output


这似乎更加优化,我想会有一种方法可以对具有相同大块数据的多个数据点进行计算。
但是如何告诉Tensorflow迭代两个相关的输入数据集呢?

最佳答案

您应该将数据分成批处理,并将每批数据馈入神经网络。这个概念不仅可以解决您的问题,还可以扩展您的问题。

(A,a) ----> label 1
(A,b) ----> label 2
(A,c) ----> label 3
(A,d) ----> label 4

(B,e) ----> label 5
(B,f) ----> label 6

(C,e) ----> label 5
(C,f) ----> label 6


进入

Batch 1: (A,a),(A,b),(B,e),(C,f),...
Batch 2: (A,c),(A,d),(C,e),(B,f)...


应用成本函数。选择一个优化器并开始训练您的网络。

08-24 13:53
查看更多