我正在使用动态批次大小进行DQN培训。我有两张通行证:
第一遍: DNN使用不同的样本进行几次后续的前向传播,直到发生特定事件为止。在此步骤中,我保存所有输入(一维张量)以在第二遍中重播。因为使用C ++无法创建具有动态形状的Tensor,所以将它们存储为一维张量的std :: vector。
第二遍: 计算预期的输出,并使用相同的DNN执行正向传播和反向传播。这次我使用二维张量作为输入,一次计算所有样本。
问题是如何从一维张量向量中最有效地创建此二维输入张量?还是我做错了?
答案 0 :(得分:0)
您可以从向量的向量中定义张量!定义一个向量,该向量的每个元素也是一个向量。 例如:
vector<int> tensor(i,vector<int> (j)); //the size is i*j where i and j are integers
要访问ij的元素,您可以通过以下方式访问它:
tensor[i][j]
此张量的大小是动态的,因为向量的大小是动态的