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();