如果这是一个微不足道的问题,或者如果我在错误的一端完全解决这个问题,请道歉。
假设我有一个如下所示的数据集:
[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迭代两个相关的输入数据集?
答案 0 :(得分:1)
您应该将数据分批并将每批产品送入神经网络。这个概念不仅可以解决您的问题,还可以解决您的问题。
(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)...
应用您的成本函数。选择一个优化器并开始训练您的网络。