diff --git a/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj b/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj index 00097ecc..7a20a90f 100644 --- a/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj +++ b/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj @@ -35,7 +35,7 @@ Docs: https://tensorflownet.readthedocs.io 13. Fix default graph and operation issue when import model. 14. Fix TF_String endcode and decode. 15. Fix Tensor memory leak. - 7.2 + 7.3 0.10.7.2 LICENSE true diff --git a/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs b/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs index a104f066..785ae192 100644 --- a/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs +++ b/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs @@ -486,7 +486,7 @@ namespace Tensorflow { if (tensorDType == TF_DataType.TF_STRING && nd.dtype.Name == "Byte") { - var buffer = nd.Data(); + var buffer = nd.ToArray(); var size = c_api.TF_StringEncodedSize((UIntPtr)buffer.Length); var handle = TF_AllocateTensor(TF_DataType.TF_STRING, IntPtr.Zero, 0, (UIntPtr)((ulong)size + 8)); @@ -524,29 +524,30 @@ namespace Tensorflow switch (nd.dtype.Name) { case "Boolean": - var boolVals = Array.ConvertAll(nd1.Data(), x => Convert.ToByte(x)); + var boolVals = Array.ConvertAll(nd1.ToArray(), x => Convert.ToByte(x)); Marshal.Copy(boolVals, 0, dotHandle, nd.size); break; case "Int16": - Marshal.Copy(nd1.Data(), 0, dotHandle, nd.size); + Marshal.Copy(nd1.ToArray(), 0, dotHandle, nd.size); break; case "Int32": - Marshal.Copy(nd1.Data(), 0, dotHandle, nd.size); + Marshal.Copy(nd1.ToArray(), 0, dotHandle, nd.size); break; case "Int64": - Marshal.Copy(nd1.Data(), 0, dotHandle, nd.size); + Marshal.Copy(nd1.ToArray(), 0, dotHandle, nd.size); break; case "Single": - Marshal.Copy(nd1.Data(), 0, dotHandle, nd.size); + Marshal.Copy(nd1.ToArray(), 0, dotHandle, nd.size); break; case "Double": - Marshal.Copy(nd1.Data(), 0, dotHandle, nd.size); + Marshal.Copy(nd1.ToArray(), 0, dotHandle, nd.size); break; case "Byte": - Marshal.Copy(nd1.Data(), 0, dotHandle, nd.size); + Marshal.Copy(nd1.ToArray(), 0, dotHandle, nd.size); break; case "String": - return new Tensor(UTF8Encoding.UTF8.GetBytes(nd.Data(0)), TF_DataType.TF_STRING); + throw new NotImplementedException($"Marshal.Copy failed for {nd.dtype.Name}."); + //return new Tensor(UTF8Encoding.UTF8.GetBytes(nd.ToArray(0)), TF_DataType.TF_STRING); default: throw new NotImplementedException($"Marshal.Copy failed for {nd.dtype.Name}."); } diff --git a/src/TensorFlowNET.Core/Tensors/Tensor.cs b/src/TensorFlowNET.Core/Tensors/Tensor.cs index 606b8999..4e4157ab 100644 --- a/src/TensorFlowNET.Core/Tensors/Tensor.cs +++ b/src/TensorFlowNET.Core/Tensors/Tensor.cs @@ -196,7 +196,7 @@ namespace Tensorflow // [offset1, offset2,...,offsetn, s1size, s1bytes, s2size, s2bytes,...,snsize,snbytes] // long size = 1; - foreach (var s in TensorShape.Dimensions) + foreach (var s in TensorShape.dims) size *= s; var buffer = new byte[size][]; diff --git a/test/TensorFlowNET.Examples/ImageProcessing/DigitRecognitionNN.cs b/test/TensorFlowNET.Examples/ImageProcessing/DigitRecognitionNN.cs index e604afff..fef5d6cf 100644 --- a/test/TensorFlowNET.Examples/ImageProcessing/DigitRecognitionNN.cs +++ b/test/TensorFlowNET.Examples/ImageProcessing/DigitRecognitionNN.cs @@ -127,7 +127,7 @@ namespace TensorFlowNET.Examples public void Train(Session sess) { // Number of training iterations in each epoch - var num_tr_iter = mnist.Train.Labels.len / batch_size; + var num_tr_iter = mnist.Train.Labels.shape[0] / batch_size; var init = tf.global_variables_initializer(); sess.run(init);