抱歉,如果这是一个小问题,或者我完全错误地将此问题视为错误。
说我有一个像这样的数据集:
[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)...
应用成本函数。选择一个优化器并开始训练您的网络。