40 void TTensorDataLoader<TensorInput, TReference<Real_t>>::CopyTensorInput(std::vector<TMatrixT<Real_t>> &tensor,
41 IndexIterator_t sampleIterator)
43 const std::vector<TMatrixT<Double_t>> &linputTensor = std::get<0>(fData);
45 if (fBatchDepth == 1) {
46 for (
size_t i = 0; i < fBatchHeight; i++) {
47 size_t sampleIndex = *sampleIterator;
48 for (
size_t j = 0; j < fBatchWidth; j++) {
49 tensor[0](i, j) = static_cast<Real_t>(linputTensor[0](sampleIndex, j));
54 for (
size_t i = 0; i < fBatchDepth; i++) {
55 size_t sampleIndex = *sampleIterator;
56 for (
size_t j = 0; j < fBatchHeight; j++) {
57 for (
size_t k = 0; k < fBatchWidth; k++) {
58 tensor[i](j, k) = static_cast<Real_t>(linputTensor[sampleIndex](j, k));
68 void TTensorDataLoader<TensorInput, TReference<Real_t>>::CopyTensorOutput(TMatrixT<Real_t> &matrix,
69 IndexIterator_t sampleIterator)
71 const TMatrixT<Double_t> &loutputMatrix = std::get<1>(fData);
72 size_t n = loutputMatrix.GetNcols();
74 for (
size_t i = 0; i < fInputShape[0]; i++) {
75 size_t sampleIndex = *sampleIterator;
76 for (
size_t j = 0; j < n; j++) {
77 matrix(i, j) =
static_cast<Real_t
>(loutputMatrix(sampleIndex, j));
86 void TTensorDataLoader<TensorInput, TReference<Real_t>>::CopyTensorWeights(TMatrixT<Real_t> &matrix,
87 IndexIterator_t sampleIterator)
89 const TMatrixT<Double_t> &lweightMatrix = std::get<2>(fData);
91 for (
size_t i = 0; i < fInputShape[0]; i++) {
92 size_t sampleIndex = *sampleIterator;
93 matrix(i, 0) =
static_cast<Real_t
>(lweightMatrix(sampleIndex, 0));
100 void TTensorDataLoader<TensorInput, TReference<Double_t>>::CopyTensorInput(std::vector<TMatrixT<Double_t>> &tensor,
101 IndexIterator_t sampleIterator)
103 const std::vector<TMatrixT<Double_t>> &linputTensor = std::get<0>(fData);
105 if (fBatchDepth == 1) {
106 for (
size_t i = 0; i < fBatchHeight; i++) {
107 size_t sampleIndex = *sampleIterator;
108 for (
size_t j = 0; j < fBatchWidth; j++) {
109 tensor[0](i, j) = linputTensor[0](sampleIndex, j);
114 for (
size_t i = 0; i < fBatchDepth; i++) {
115 size_t sampleIndex = *sampleIterator;
116 for (
size_t j = 0; j < fBatchHeight; j++) {
117 for (
size_t k = 0; k < fBatchWidth; k++) {
118 tensor[i](j, k) = linputTensor[sampleIndex](j, k);
128 void TTensorDataLoader<TensorInput, TReference<Double_t>>::CopyTensorOutput(TMatrixT<Double_t> &matrix,
129 IndexIterator_t sampleIterator)
131 const TMatrixT<Double_t> &loutputMatrix = std::get<1>(fData);
132 size_t n = loutputMatrix.GetNcols();
134 for (
size_t i = 0; i < fInputShape[0]; i++) {
135 size_t sampleIndex = *sampleIterator;
136 for (
size_t j = 0; j < n; j++) {
137 matrix(i, j) = loutputMatrix(sampleIndex, j);
146 void TTensorDataLoader<TensorInput, TReference<Double_t>>::CopyTensorWeights(TMatrixT<Double_t> &matrix,
147 IndexIterator_t sampleIterator)
149 const TMatrixT<Double_t> &lweightMatrix = std::get<2>(fData);
151 for (
size_t i = 0; i < fInputShape[0]; i++) {
152 size_t sampleIndex = *sampleIterator;
153 matrix(i, 0) = lweightMatrix(sampleIndex, 0);
160 void TTensorDataLoader<TMVAInput_t, TReference<Real_t>>::CopyTensorInput(std::vector<TMatrixT<Real_t>> &tensor,
161 IndexIterator_t sampleIterator)
164 Event *
event = std::get<0>(fData)[0];
166 if (fBatchDepth == 1) {
167 for (
size_t i = 0; i < fBatchHeight; i++) {
168 size_t sampleIndex = *sampleIterator;
169 for (
size_t j = 0; j < fBatchWidth; j++) {
170 event = std::get<0>(fData)[sampleIndex];
171 tensor[0](i, j) = static_cast<Real_t>(event->GetValue(j));
176 for (
size_t i = 0; i < fBatchDepth; i++) {
177 size_t sampleIndex = *sampleIterator;
178 for (
size_t j = 0; j < fBatchHeight; j++) {
179 for (
size_t k = 0; k < fBatchWidth; k++) {
180 event = std::get<0>(fData)[sampleIndex];
181 tensor[i](j, k) = static_cast<Real_t>(event->GetValue(j * fBatchWidth + k));
191 void TTensorDataLoader<TMVAInput_t, TReference<Real_t>>::CopyTensorOutput(TMatrixT<Real_t> &matrix,
192 IndexIterator_t sampleIterator)
194 const DataSetInfo &info = std::get<1>(fData);
195 Int_t n = matrix.GetNcols();
197 for (
size_t i = 0; i < fInputShape[0]; i++) {
198 size_t sampleIndex = *sampleIterator++;
199 Event *
event = std::get<0>(fData)[sampleIndex];
201 for (Int_t j = 0; j < n; j++) {
202 if (event->GetNTargets() == 0) {
204 matrix(i, j) = (info.IsSignal(event)) ? 1.0 : 0.0;
207 if (j == (Int_t)event->GetClass()) {
212 matrix(i, j) =
static_cast<Real_t
>(
event->GetTarget(j));
220 void TTensorDataLoader<TMVAInput_t, TReference<Real_t>>::CopyTensorWeights(TMatrixT<Real_t> &matrix,
221 IndexIterator_t sampleIterator)
223 for (
size_t i = 0; i < fInputShape[0]; i++) {
224 size_t sampleIndex = *sampleIterator++;
225 Event *
event = std::get<0>(fData)[sampleIndex];
226 matrix(i, 0) =
static_cast<Real_t
>(
event->GetWeight());
232 void TTensorDataLoader<TMVAInput_t, TReference<Double_t>>::CopyTensorInput(std::vector<TMatrixT<Double_t>> &tensor,
233 IndexIterator_t sampleIterator)
236 Event *
event = std::get<0>(fData)[0];
238 if (fBatchDepth == 1) {
239 for (
size_t i = 0; i < fBatchHeight; i++) {
240 size_t sampleIndex = *sampleIterator;
241 for (
size_t j = 0; j < fBatchWidth; j++) {
242 event = std::get<0>(fData)[sampleIndex];
243 tensor[0](i, j) = event->GetValue(j);
248 for (
size_t i = 0; i < fBatchDepth; i++) {
249 size_t sampleIndex = *sampleIterator;
250 for (
size_t j = 0; j < fBatchHeight; j++) {
251 for (
size_t k = 0; k < fBatchWidth; k++) {
252 event = std::get<0>(fData)[sampleIndex];
253 tensor[i](j, k) = event->GetValue(j * fBatchWidth + k);
263 void TTensorDataLoader<TMVAInput_t, TReference<Double_t>>::CopyTensorOutput(TMatrixT<Double_t> &matrix,
264 IndexIterator_t sampleIterator)
266 const DataSetInfo &info = std::get<1>(fData);
267 Int_t n = matrix.GetNcols();
269 for (
size_t i = 0; i < fInputShape[0]; i++) {
270 size_t sampleIndex = *sampleIterator++;
271 Event *
event = std::get<0>(fData)[sampleIndex];
273 for (Int_t j = 0; j < n; j++) {
274 if (event->GetNTargets() == 0) {
276 matrix(i, j) = (info.IsSignal(event)) ? 1.0 : 0.0;
279 if (j == (Int_t)event->GetClass()) {
284 matrix(i, j) =
event->GetTarget(j);
292 void TTensorDataLoader<TMVAInput_t, TReference<Double_t>>::CopyTensorWeights(TMatrixT<Double_t> &matrix,
293 IndexIterator_t sampleIterator)
295 for (
size_t i = 0; i < fInputShape[0]; i++) {
296 size_t sampleIndex = *sampleIterator++;
297 Event *
event = std::get<0>(fData)[sampleIndex];
298 matrix(i, 0) =
event->GetWeight();