Пример #1
0
        public void Calculate(bool train)
        {
            var provider = TrainDataProvider;

            if (!train)
            {
                provider = TestDataProvider;
            }
            if (provider != null)
            {
                var nextBatch = provider.GetNextBatch();
                if (!nextBatch.IsGPUData)
                {
                    if (!InputLayer.IsSparse)
                    {
                        InputLayer.SetData(nextBatch.Inputs);
                    }
                    else
                    {
                        InputLayer.SetSparseData(nextBatch.SparseValues.ToList(), nextBatch.SparseIndices.ToList());
                    }
                    LabelLayer.SetData(nextBatch.Labels);
                }
                else
                {
                    InputLayer.SetGPUData(nextBatch.GpuInputs);
                    LabelLayer.SetGPUData(nextBatch.GpuLabels);
                }
                tmp++;
            }

            foreach (var layer in Layers)
            {
                //if (layer is Conv1DLayer) continue;
                layer.Calculate(train);
            }
            InputLayer.IncBatchNo();
            LabelLayer.IncBatchNo();
            if (train)
            {
                TrainRecordsCount += _minibatchSize;
            }
        }