Beispiel #1
0
        public I3DTensor CreateTensor(IIndexable3DTensor tensor)
        {
            var matrixList = tensor.Data.Select(d => (GpuMatrix)Create(d)).ToList();
            var ret        = new Gpu3DTensor(this, tensor.RowCount, tensor.ColumnCount, tensor.Depth, matrixList);

            return(ret);
        }
Beispiel #2
0
 public static void AssertEqual(IIndexable3DTensor t1, IIndexable3DTensor t2, int maxDifference = 6)
 {
     Assert.AreEqual(t1.Depth, t2.Depth);
     for (var i = 0; i < t1.Depth; i++)
     {
         AssertEqual(t1.Data[i], t2.Data[i]);
     }
 }
Beispiel #3
0
 /// <summary>
 /// Zips two tensors and writes the values side by side
 /// </summary>
 /// <param name="t1">First tensor</param>
 /// <param name="t2">Second tensor</param>
 /// <returns>Xml string</returns>
 public static string WriteComparison(IIndexable3DTensor t1, IIndexable3DTensor t2)
 {
     using var stringWriter = new StringWriter();
     using var writer       = new XmlTextWriter(stringWriter);
     _Write(t1, t2, writer);
     writer.Flush();
     return(stringWriter.ToString());
 }
Beispiel #4
0
 static void _Write(IIndexable3DTensor t1, IIndexable3DTensor t2, XmlTextWriter writer)
 {
     writer.WriteStartElement("tensor-3d");
     writer.WriteAttributeString("d1", t1.Depth.ToString());
     writer.WriteAttributeString("d2", t2.Depth.ToString());
     foreach (var matrix in t1.Matrix.Zip(t2.Matrix, (m1, m2) => (m1, m2)))
     {
         _Write(matrix.Item1, matrix.Item2, writer);
     }
     writer.WriteEndElement();
 }
 /// <summary>
 /// Create a 3D tensor
 /// </summary>
 /// <param name="lap"></param>
 /// <param name="tensor">An indexable 3D tensor to use as a source</param>
 public static I3DTensor Create3DTensor(this ILinearAlgebraProvider lap, IIndexable3DTensor tensor)
 {
     return(lap.Create3DTensor(tensor.Matrix.Select(m => CreateMatrix(lap, m)).ToList()));
 }
Beispiel #6
0
 public I3DTensor CreateTensor(IIndexable3DTensor tensor)
 {
     return(new Cpu3DTensor(tensor.Data.Select(m => CreateMatrix(m.Data)).ToList()));
 }