如何在不分配新的'binary_crossentropy'
切片的情况下将字节的切片转换为[]uint16
并反转。这个问题集中在性能和内存消耗上
答案 0 :(得分:0)
考虑converting = copying,除了以下两种特殊情况:m:=map[string]int{};m[string(bytes))
没有分配,与append类似。
Using unsafe.Pointer似乎是当前解决方法(顾名思义为“不安全”)
u16 := *(*uint16)(unsafe.Pointer(&byte_array[4]))
有一个proposal to use unsafe.Slice
instead。
还有(暂时拒绝)proposal golang/go issue 13656
问题是必须为某些C,T,v和n编写
(*[C]T)(unsafe.Pointer(v))[:n:n]
。一种写完整表达式的简单方法是理想的。
var s []byte = C.AsSlice((*byte)(ptr), n)