@@ -486,7 +486,7 @@ public unsafe Tensor(NDArray nd, TF_DataType? tensorDType = null)
486486 {
487487 if ( tensorDType == TF_DataType . TF_STRING && nd . dtype . Name == "Byte" )
488488 {
489- var buffer = nd . Data < byte > ( ) ;
489+ var buffer = nd . ToArray < byte > ( ) ;
490490 var size = c_api . TF_StringEncodedSize ( ( UIntPtr ) buffer . Length ) ;
491491 var handle = TF_AllocateTensor ( TF_DataType . TF_STRING , IntPtr . Zero , 0 , ( UIntPtr ) ( ( ulong ) size + 8 ) ) ;
492492
@@ -524,29 +524,30 @@ private unsafe IntPtr Allocate(NDArray nd, TF_DataType? tensorDType = null)
524524 switch ( nd . dtype . Name )
525525 {
526526 case "Boolean" :
527- var boolVals = Array . ConvertAll ( nd1 . Data < bool > ( ) , x => Convert . ToByte ( x ) ) ;
527+ var boolVals = Array . ConvertAll ( nd1 . ToArray < bool > ( ) , x => Convert . ToByte ( x ) ) ;
528528 Marshal . Copy ( boolVals , 0 , dotHandle , nd . size ) ;
529529 break ;
530530 case "Int16" :
531- Marshal . Copy ( nd1 . Data < short > ( ) , 0 , dotHandle , nd . size ) ;
531+ Marshal . Copy ( nd1 . ToArray < short > ( ) , 0 , dotHandle , nd . size ) ;
532532 break ;
533533 case "Int32" :
534- Marshal . Copy ( nd1 . Data < int > ( ) , 0 , dotHandle , nd . size ) ;
534+ Marshal . Copy ( nd1 . ToArray < int > ( ) , 0 , dotHandle , nd . size ) ;
535535 break ;
536536 case "Int64" :
537- Marshal . Copy ( nd1 . Data < long > ( ) , 0 , dotHandle , nd . size ) ;
537+ Marshal . Copy ( nd1 . ToArray < long > ( ) , 0 , dotHandle , nd . size ) ;
538538 break ;
539539 case "Single" :
540- Marshal . Copy ( nd1 . Data < float > ( ) , 0 , dotHandle , nd . size ) ;
540+ Marshal . Copy ( nd1 . ToArray < float > ( ) , 0 , dotHandle , nd . size ) ;
541541 break ;
542542 case "Double" :
543- Marshal . Copy ( nd1 . Data < double > ( ) , 0 , dotHandle , nd . size ) ;
543+ Marshal . Copy ( nd1 . ToArray < double > ( ) , 0 , dotHandle , nd . size ) ;
544544 break ;
545545 case "Byte" :
546- Marshal . Copy ( nd1 . Data < byte > ( ) , 0 , dotHandle , nd . size ) ;
546+ Marshal . Copy ( nd1 . ToArray < byte > ( ) , 0 , dotHandle , nd . size ) ;
547547 break ;
548548 case "String" :
549- return new Tensor ( UTF8Encoding . UTF8 . GetBytes ( nd . Data < string > ( 0 ) ) , TF_DataType . TF_STRING ) ;
549+ throw new NotImplementedException ( $ "Marshal.Copy failed for { nd . dtype . Name } .") ;
550+ //return new Tensor(UTF8Encoding.UTF8.GetBytes(nd.ToArray<string>(0)), TF_DataType.TF_STRING);
550551 default :
551552 throw new NotImplementedException ( $ "Marshal.Copy failed for { nd . dtype . Name } .") ;
552553 }
0 commit comments