亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在張量流中進行“四舍五入”

如何在張量流中進行“四舍五入”

鴻蒙傳說 2023-09-19 17:17:00
我在執行 tf.round(x) x=[0.4, 1.5, 2.5, -1.5, -2.5, -0.4] 時遇到一些問題如果我想讓 ans=[0, 2, 3, -2, -3, 0] 從零舍入一半我應該怎么做?我嘗試過 tf.keras.backend.round()、tf.math.round、tf.math.rint()我在 python 中得到了類似的答案,但在 TF 中沒有得到類似的答案>>>decimal.Decimal(101.5).quantize(decimal.Decimal('0'), rounding=decimal.ROUND_HALF_UP)Decimal('102')>>>decimal.Decimal(102.5).quantize(decimal.Decimal('0'), rounding=decimal.ROUND_HALF_UP)Decimal('103')>>>decimal.Decimal(-101.5).quantize(decimal.Decimal('0'), rounding=decimal.ROUND_HALF_UP)Decimal('-102')>>>decimal.Decimal(-102.5).quantize(decimal.Decimal('0'), rounding=decimal.ROUND_HALF_UP)Decimal('-103')謝謝
查看完整描述

2 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

嘗試

x=tf.constant([0.4, 1.5, 2.5, -1.5, -2.5, -0.4])
x=tf.where(x>0, tf.math.nextafter(x, np.inf), tf.math.nextafter(x, -np.inf))
x=tf.round(x)

這將從 0 開始舍入。


查看完整回答
反對 回復 2023-09-19
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

這個怎么樣 ?


x = np.array([0.4, 1.5, 2.5, -1.5, -2.5, -0.4]) 

for i, val in enumerate(x):

   if val % 1 == 0.5

       x[i] = tf.math.floor(x[i]) if val < 0 else tf.math.floor(x[i]+0.5)

   else

       x[i] = tf.math.round(x[i])

print(x)

[ 0. 2. 3. -2. -3. 0.]


查看完整回答
反對 回復 2023-09-19
  • 2 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號