0

嗯,我覺得不好意思,我不能由我自己得到這個,但..
我怎樣才能減少尾數(和指數)位與一個浮點數?減少尾數位寬


我訓練(卷積)人工神經網絡(我實現它FPGA),我想學習位寬對比測試尾數(和指數)之間的關係(和訓練)CPU(和GPU)的準確性。下一步就是將我的浮點數轉換爲固定點表示形式(這就是我在FPGA上使用的),然後看看結果如何。 (Tong,Rutenbar和Nagle(1998)]和[Leeser and Zhao(2003)])已經完成了類似的研究,所以應該有這樣的方法,儘管'how '對我來說還不清楚。

最後一點,我在Lua編程,但我可以很容易地包含LuaJIT的ffi

回答

2

爲了從二進制浮點數X和圓形的剩餘位,則使用Veltkamp的算法的有效數除去小號位:

Let factor = 2**s + 1. 
Let c = factor * x. 
Let y = c - (c-x). 

每個操作上述應與浮點計算算術,包括與x相同精度的四捨五入。然後是期望的結果。

請注意,這會將一個數字舍入爲較短的有效數字。它通常不會再用較短的有效數字重現計算結果。例如,給定一個b,計算一個 b以更高的精度,然後舍入至更小的精度不總是有相同的結果爲計算一個 b與最終精度。

要降低指數範圍,只需將新指數範圍的值與閾值進行比較,並根據需要聲明下溢或溢出。

+0

非常感謝。這將是很好的考慮在未來,因爲現在我只需要在點(number:mul(2^b):floor():div(2^b))之後的特定位處截斷我的float因爲我們仍然使用靜態固定點數字。明年我們可能會切換到動態固定點,然後我會解決尾數:) – Atcold