Browse Source

Tensor.ToArray<T>: Minor change

tags/v0.12
Eli Belash 6 years ago
parent
commit
4a9a2c6c95
1 changed files with 5 additions and 13 deletions
  1. +5
    -13
      src/TensorFlowNET.Core/Tensors/Tensor.cs

+ 5
- 13
src/TensorFlowNET.Core/Tensors/Tensor.cs View File

@@ -246,20 +246,12 @@ namespace Tensorflow
unsafe
{
var len = (long) size;
fixed (T* dstRet = ret)
fixed (T* dst = ret)
{
T* dst = dstRet; //local stack copy
if (typeof(T).IsPrimitive)
{
var src = (T*) buffer;
len *= ((long) itemsize);
System.Buffer.MemoryCopy(src, dst, len, len);
} else
{
var itemsize = (long) this.itemsize;
var buffer = this.buffer.ToInt64();
Parallel.For(0L, len, i => dst[i] = Marshal.PtrToStructure<T>(new IntPtr(buffer + i * itemsize)));
}
//T can only be unmanaged, I believe it is safe to say that MemoryCopy is valid for all cases this method can be called.
var src = (T*) buffer;
len *= ((long) itemsize);
System.Buffer.MemoryCopy(src, dst, len, len);
}
}



Loading…
Cancel
Save