在不複製數據的情況下,將張量從一種類型轉換為另一種類型。
用法
tf.raw_ops.Bitcast(
input, type, name=None
)
參數
-
input
一個Tensor
。必須是以下類型之一:bfloat16
,half
,float32
,float64
,int64
,int32
,uint8
,uint16
,uint32
,uint64
,int8
,int16
,complex64
,complex128
,qint8
,quint8
,qint16
,quint16
,qint32
。 -
type
A tf.dtypes.DType從:tf.bfloat16, tf.half, tf.float32, tf.float64, tf.int64, tf.int32, tf.uint8, tf.uint16, tf.uint32, tf.uint64, tf.int8, tf.int16, tf.complex64, tf.complex128, tf.qint8, tf.quint8, tf.qint16, tf.quint16, tf.qint32
. -
name
操作的名稱(可選)。
返回
-
Tensor
類型為type
。
給定一個張量 input
,此操作返回一個與 input
具有相同緩衝區數據且數據類型為 type
的張量。
如果輸入數據類型 T
大於輸出數據類型 type
,則形狀從 [...] 更改為 [..., sizeof( T
)/sizeof( type
)]。
如果 T
小於 type
,則運算符要求最右邊的維度等於 sizeof( type
)/sizeof( T
)。然後形狀從 [..., sizeof( type
)/sizeof( T
)] 變為 [...]。
tf.bitcast() 和 tf.cast() 在將實際 dtype 轉換為複雜 dtype(例如 tf.complex64 或 tf.complex128)時的工作方式不同,因為 tf.cast() 將虛部設為 0 而 tf.bitcast() 給出模塊錯誤。例如,
示例 1:
a = [1., 2., 3.]
equality_bitcast = tf.bitcast(a, tf.complex128)
Traceback (most recent call last):
InvalidArgumentError:Cannot bitcast from 1 to 18 [Op:Bitcast]
equality_cast = tf.cast(a, tf.complex128)
print(equality_cast)
tf.Tensor([1.+0.j 2.+0.j 3.+0.j], shape=(3,), dtype=complex128)
示例 2:
tf.bitcast(tf.constant(0xffffffff, dtype=tf.uint32), tf.uint8)
<tf.Tensor:shape=(4,), dtype=uint8, numpy=array([255, 255, 255, 255], dtype=uint8)>
示例 3:
x = [1., 2., 3.]
y = [0., 2., 3.]
equality= tf.equal(x,y)
equality_cast = tf.cast(equality,tf.float32)
equality_bitcast = tf.bitcast(equality_cast,tf.uint8)
print(equality)
tf.Tensor([False True True], shape=(3,), dtype=bool)
print(equality_cast)
tf.Tensor([0. 1. 1.], shape=(3,), dtype=float32)
print(equality_bitcast)
tf.Tensor(
[[ 0 0 0 0]
[ 0 0 128 63]
[ 0 0 128 63]], shape=(3, 4), dtype=uint8)
注意:Bitcast 被實現為低級強製轉換,因此具有不同 endian 順序的機器將給出不同的結果。
相關用法
- Python tf.raw_ops.BitwiseAnd用法及代碼示例
- Python tf.raw_ops.BitwiseOr用法及代碼示例
- Python tf.raw_ops.BitwiseXor用法及代碼示例
- Python tf.raw_ops.BatchMatMul用法及代碼示例
- Python tf.raw_ops.BatchToSpaceND用法及代碼示例
- Python tf.raw_ops.BlockLSTM用法及代碼示例
- Python tf.raw_ops.BatchToSpace用法及代碼示例
- Python tf.raw_ops.BatchFunction用法及代碼示例
- Python tf.raw_ops.BlockLSTMV2用法及代碼示例
- Python tf.raw_ops.BatchMatMulV3用法及代碼示例
- Python tf.raw_ops.BatchMatMulV2用法及代碼示例
- Python tf.raw_ops.BroadcastTo用法及代碼示例
- Python tf.raw_ops.TPUReplicatedInput用法及代碼示例
- Python tf.raw_ops.SelfAdjointEigV2用法及代碼示例
- Python tf.raw_ops.OneHot用法及代碼示例
- Python tf.raw_ops.ResourceScatterNdSub用法及代碼示例
- Python tf.raw_ops.ReadVariableXlaSplitND用法及代碼示例
- Python tf.raw_ops.GatherV2用法及代碼示例
- Python tf.raw_ops.Expm1用法及代碼示例
- Python tf.raw_ops.UniqueWithCounts用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.raw_ops.Bitcast。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。