AsUnorderedMapStreamInformationPairNDArrayViewPtrNDArrayViewPtr( IDictionary <StreamInformation, Tuple <NDArrayView, NDArrayView> > input) { UnorderedMapStreamInformationPairNDArrayViewPtrNDArrayViewPtr inputVector = new UnorderedMapStreamInformationPairNDArrayViewPtrNDArrayViewPtr(); foreach (var element in input) { inputVector.Add(element.Key, new PairNDArrayViewPtrNDArrayViewPtr(element.Value.Item1, element.Value.Item2)); } return(inputVector); }
/// <summary> /// /// </summary> /// <param name="minibatchSource"></param> /// <param name="computedMeanAndVariances"></param> /// <param name="device"></param> public static void ComputeInputPerDimMeansAndInvStdDevs(MinibatchSource minibatchSource, IDictionary <StreamInformation, Tuple <NDArrayView, NDArrayView> > computedMeanAndVariances, DeviceDescriptor device) { UnorderedMapStreamInformationPairNDArrayViewPtrNDArrayViewPtr mapStreamInfoToNDArrayPair = Helper.AsUnorderedMapStreamInformationPairNDArrayViewPtrNDArrayViewPtr(computedMeanAndVariances); CNTKLib.ComputeInputPerDimMeansAndInvStdDevs(minibatchSource, mapStreamInfoToNDArrayPair, device); foreach (StreamInformation s in computedMeanAndVariances.Keys.ToList()) { computedMeanAndVariances[s] = new Tuple <NDArrayView, NDArrayView>(mapStreamInfoToNDArrayPair[s].first, mapStreamInfoToNDArrayPair[s].second); } }