Bitcasts เทนเซอร์จากประเภทหนึ่งไปยังอีกประเภทหนึ่งโดยไม่ต้องคัดลอกข้อมูล
เมื่อระบุเทนเซอร์ "อินพุต" การดำเนินการนี้จะส่งคืนเทนเซอร์ที่มีข้อมูลบัฟเฟอร์เหมือนกับ "อินพุต" โดยมีประเภทข้อมูล "ประเภท"
หากประเภทข้อมูลอินพุต `T` มีขนาดใหญ่กว่าประเภทข้อมูลเอาต์พุต `type` รูปร่างจะเปลี่ยนจาก [...] เป็น [..., sizeof(`T`)/sizeof(`type`)]
หาก `T` เล็กกว่า `type` โอเปอเรเตอร์ต้องการให้มิติด้านขวาสุดเท่ากับ sizeof(`type`)/sizeof(`T`) จากนั้นรูปร่างจะเปลี่ยนจาก [..., sizeof(`type`)/sizeof(`T`)] เป็น [...]
tf.bitcast() และ tf.cast() ทำงานแตกต่างออกไปเมื่อ real dtype ถูกร่ายเป็น dtype ที่ซับซ้อน (เช่น tf.complex64 หรือ tf.complex128) เนื่องจาก tf.cast() สร้างจินตภาพส่วนที่ 0 ในขณะที่ tf.bitcast() ให้โมดูล ข้อผิดพลาด. ตัวอย่างเช่น,
ตัวอย่างที่ 1:
>>> a = [1., 2., 3.] >>> Equality_bitcast = tf.bitcast(a, tf.complex128) Traceback (การโทรล่าสุดครั้งล่าสุด): ... InvalidArgumentError: ไม่สามารถ bitcast ได้ตั้งแต่ 1 ถึง 18 [ Op:Bitcast] >>> Equality_cast = tf.cast(a, tf.complex128) >>> print(equality_cast) tf.Tensor([1.+0.j 2.+0.j 3.+0.j] , รูปร่าง=(3,), dtype=complex128)
ตัวอย่างที่ 2:
>>> tf.bitcast(tf.constant(0xffffffff, dtype=tf.uint32), tf.uint8) ตัวอย่างที่ 3: >>> x = [1., 2., 3.] >>> y = [0., 2., 3.] >>> ความเท่าเทียมกัน= tf.equal(x,y) >>> ความเท่าเทียมกัน_cast = tf หล่อ (ความเท่าเทียมกัน, tf.float32) >>> equality_bitcast = tf.bitcast (equality_cast, tf.uint8) >>> พิมพ์ (ความเท่าเทียมกัน) tf.Tensor ([False True True], รูปร่าง = (3,), dtype = bool ) >>> พิมพ์ (equality_cast) tf.Tensor ([0. 1. 1.], รูปร่าง = (3,), dtype = float32) >>> พิมพ์ (equality_bitcast) tf.Tensor ( [[ 0 0 0 0] [ 0 0 128 63] [ 0 0 128 63]], รูปร่าง=(3, 4), dtype=uint8) หมายเหตุ : Bitcast ถูกนำมาใช้เป็นการแคสต์ระดับต่ำ ดังนั้นเครื่องที่มีลำดับ endian ต่างกันจะให้ผลลัพธ์ที่แตกต่างกัน การคัดลอกจากบัฟเฟอร์อินพุตไปยังบัฟเฟอร์เอาต์พุตจะถูกสร้างขึ้นบนเครื่อง BE เมื่อประเภทต่างๆ มีขนาดต่างกัน เพื่อให้ได้ผลลัพธ์การหล่อแบบเดียวกันกับในเครื่อง LE
วิธีการสาธารณะ
เอาท์พุต <U> | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
คงที่ <U, T> บิตคาสต์ <U> | สร้าง (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> อินพุต, ประเภท <U>) วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Bitcast ใหม่ |
เอาท์พุต <U> | เอาท์พุท () |
วิธีการสืบทอด
วิธีการสาธารณะ
เอาท์ พุท สาธารณะ <U> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง Bitcast แบบคงที่สาธารณะ <U> (ขอบเขต ขอบเขต , อินพุต Operand <T>, ประเภทคลาส <U>)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Bitcast ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|
การส่งคืน
- ตัวอย่างใหม่ของ Bitcast