Merge remote-tracking branch 'origin/feature/tensorflow' into feature/tensorflow

This commit is contained in:
Alexander Nozik 2021-11-10 20:04:45 +03:00
commit 4e16cf1c98
2 changed files with 4 additions and 2 deletions

View File

@ -186,7 +186,9 @@ public abstract class TensorFlowAlgebra<T, TT : TType, A : Ring<T>> internal con
} }
override fun StructureND<T>.dot(other: StructureND<T>): TensorFlowOutput<T, TT> = biOp(other) { l, r -> override fun StructureND<T>.dot(other: StructureND<T>): TensorFlowOutput<T, TT> = biOp(other) { l, r ->
ops.linalg.matMul(l, r) ops.linalg.matMul(
if (l.asTensor().shape().numDimensions() == 1) ops.expandDims(l,ops.constant(0)) else l,
if (r.asTensor().shape().numDimensions() == 1) ops.expandDims(r,ops.constant(-1)) else r)
} }
override fun diagonalEmbedding( override fun diagonalEmbedding(

View File

@ -208,7 +208,7 @@ public interface TensorAlgebra<T, A : Ring<T>> : RingOpsND<T, A> {
* *
* 3. If the first argument is 1-dimensional and the second argument is 2-dimensional, * 3. If the first argument is 1-dimensional and the second argument is 2-dimensional,
* a 1 is prepended to its dimension for the purpose of the matrix multiply. * a 1 is prepended to its dimension for the purpose of the matrix multiply.
* After the matrix multiply, the prepended dimension is removed. * After the matrix multiply, depending on the implementation the prepended dimension might be removed.
* *
* 4. If the first argument is 2-dimensional and the second argument is 1-dimensional, * 4. If the first argument is 2-dimensional and the second argument is 1-dimensional,
* the matrix-vector product is returned. * the matrix-vector product is returned.