- [ ] torch.nn.Module is very incomplete - [ ] torch.nn.Module.forward should return Tensor and accept single Tensor instead of an array. - [ ] all methods should be overridable via virtual - [ ] Tensor.require_grad missing a setter.] - [ ] Tensor.GetData should use `Buffer.MemoryCopy();` with fixing the return array instead of `Marshal.Copy` which is slower. - [ ] Tensor should implement `IComparable<Tensor>` and `IComparable` - [ ] `BoolTensor.all` and `.any`. - [ ] `Tensor` accessing with `...` or `:` - [ ] Consistent math operators between similar generic Tensor, e.g. `Tensor<double> * Tensor<double> shall return Tensor<double>` - [ ] Comparing tensor operators should return Tensor<bool> - [ ] Comparing operators against scalar values ```C# public static Tensor<bool> operator >=(long left, IndicatorBase right) { if (ReferenceEquals(right, null)) return Constants.False; return (Tensor<bool>) (left >= right.Current); } ``` - [ ] `torch.tensor(void*, ...)` and `torch.tensor(IntPtr, ...)` overload - [ ] `Tensor[PyObject[]]` for faster invoke
Buffer.MemoryCopy();with fixing the return array instead ofMarshal.Copywhich is slower.IComparable<Tensor>andIComparableBoolTensor.alland.any.Tensoraccessing with...or:Tensor<double> * Tensor<double> shall return Tensor<double>torch.tensor(void*, ...)andtorch.tensor(IntPtr, ...)overloadTensor[PyObject[]]for faster invoke