private void load(StreamReader sr, InnerProductLayer <T> layer) { for (int i = 0; i < layer.blobs.Count; i++) { List <float> rgf = new List <float>(); string strLine = sr.ReadLine(); string[] rgstr = strLine.Split(','); for (int j = 0; j < rgstr.Length; j++) { rgf.Add(BaseParameter.ParseFloat(rgstr[j])); } layer.blobs[i].mutable_cpu_data = Utility.ConvertVec <T>(rgf.ToArray()); } for (int i = 0; i < layer.internal_blobs.Count; i++) { List <float> rgf = new List <float>(); string strLine = sr.ReadLine(); string[] rgstr = strLine.Split(','); for (int j = 0; j < rgstr.Length; j++) { rgf.Add(BaseParameter.ParseFloat(rgstr[j])); } layer.internal_blobs[i].mutable_cpu_data = Utility.ConvertVec <T>(rgf.ToArray()); } }
private void save(StreamWriter sw, InnerProductLayer <T> layer) { for (int i = 0; i < layer.blobs.Count; i++) { float[] rgf = Utility.ConvertVecF <T>(layer.blobs[i].mutable_cpu_data); string strLine = ""; for (int j = 0; j < rgf.Length; j++) { strLine += rgf[j].ToString() + ","; } sw.WriteLine(strLine.TrimEnd(',')); } for (int i = 0; i < layer.internal_blobs.Count; i++) { float[] rgf = Utility.ConvertVecF <T>(layer.internal_blobs[i].mutable_cpu_data); string strLine = ""; for (int j = 0; j < rgf.Length; j++) { strLine += rgf[j].ToString() + ","; } sw.WriteLine(strLine.TrimEnd(',')); } }
public void InnerProductLayer_BackwardGradient(int output, FillerConfiguration weightsFiller, FillerConfiguration biasFiller) { bool useBias = biasFiller != null; var config = new InnerProductLayerConfiguration(output, useBias, weightsFiller, biasFiller); var layer = new InnerProductLayer(config); var checker = new GradientChecker(1e-4f, 1e-3f); checker.CheckExhaustive(layer, bottom, top); }
public void InnerProductLayer_BackwardGradient(int output, FillerConfiguration weightsFiller, FillerConfiguration biasFiller) { bool useBias = biasFiller != null; var config = new InnerProductLayerConfiguration(output, useBias, weightsFiller, biasFiller); var layer = new InnerProductLayer(config); var checker = new GradientChecker(1e-4f, 1e-3f); checker.CheckExhaustive(layer, bottom, top); }
public void InnerProductLayer_Setup() { var config = new InnerProductLayerConfiguration(10); var layer = new InnerProductLayer(config); layer.Setup(bottom, top); Assert.Equal(2, top.Num); Assert.Equal(10, top.Channels); Assert.Equal(1, top.Height); Assert.Equal(1, top.Width); }
public void InnerProductLayer_Forward() { var weightsFiller = new UniformFillerConfiguration(0, 1); var biasFiller = new UniformFillerConfiguration(1, 2); var config = new InnerProductLayerConfiguration(10, true, weightsFiller, biasFiller); var layer = new InnerProductLayer(config); layer.Setup(bottom, top); layer.Forward(bottom, top); using (var topCpu = top.OnCpu()) { int count = top.Count; for (int i = 0; i < count; i++) Assert.True(topCpu.DataAt(i) >= 1f); } }
public void InnerProductLayer_Forward() { var weightsFiller = new UniformFillerConfiguration(0, 1); var biasFiller = new UniformFillerConfiguration(1, 2); var config = new InnerProductLayerConfiguration(10, true, weightsFiller, biasFiller); var layer = new InnerProductLayer(config); layer.Setup(bottom, top); layer.Forward(bottom, top); using (var topCpu = top.OnCpu()) { int count = top.Count; for (int i = 0; i < count; i++) { Assert.True(topCpu.DataAt(i) >= 1f); } } }
public void InnerProductLayer_Setup() { var config = new InnerProductLayerConfiguration(10); var layer = new InnerProductLayer(config); layer.Setup(bottom, top); Assert.Equal(2, top.Num); Assert.Equal(10, top.Channels); Assert.Equal(1, top.Height); Assert.Equal(1, top.Width); }