Exemple #1
0
        private static void loadBatch(DataBatchArgs e, List <Tuple <byte[], int> > rgData, ref int nIdx)
        {
            string     strData;
            List <int> rgDataDim = e.GetInputAt(0, out strData);
            string     strLabel;
            List <int> rgLabelDim = e.GetInputAt(1, out strLabel);

            float[]    rgRawData   = new float[rgData[0].Item1.Length * e.BatchSize];
            float[]    rgRawLabels = new float[e.BatchSize * rgLabelDim[0]];
            List <int> rgDimData   = new List <int>()
            {
                e.BatchSize
            };
            List <int> rgDimLabels = new List <int>()
            {
                e.BatchSize
            };
            int nDataOffset  = 0;
            int nLabelOffset = 0;

            rgDimData.AddRange(rgDataDim);
            rgDimLabels.AddRange(rgLabelDim);

            for (int i = 0; i < e.BatchSize; i++)
            {
                int nLabel = rgData[nIdx].Item2;
                rgRawLabels[nLabelOffset + nLabel] = 1;

                for (int j = 0; j < rgData[nIdx].Item1.Length; j++)
                {
                    float fVal = rgData[nIdx].Item1[j];

                    // Binarize data
                    if (fVal > 0)
                    {
                        fVal = 1.0f;
                    }

                    rgRawData[nDataOffset + j] = fVal;
                }

                nDataOffset  += rgData[nIdx].Item1.Length;
                nLabelOffset += 10;

                nIdx++;

                if (nIdx == rgData.Count)
                {
                    nIdx = 0;
                }
            }

            DenseTensor <float> tensorData   = new DenseTensor <float>(rgRawData, rgDimData.ToArray());
            DenseTensor <float> tensorLabels = new DenseTensor <float>(rgRawLabels, rgDimLabels.ToArray());

            e.Values.Add(NamedOnnxValue.CreateFromTensor <float>(strData, tensorData));
            e.Values.Add(NamedOnnxValue.CreateFromTensor <float>(strLabel, tensorLabels));
        }
Exemple #2
0
 private static void OnGetTrainingDataBatch(object sender, DataBatchArgs e)
 {
     loadBatch(e, m_rgTestingData, ref m_nTestingDataIdx);
 }