4

MATLAB は float16 演算をサポートしていますか? もしそうなら、double マトリックスを float16 に変換する方法は? 表現に 16 ビット浮動小数点表現で十分な大規模な行列で算術演算を実行しています。double データ型で表すと、4 倍のメモリが必要になります。

4

3 に答える 3

5

あなたのマトリックスはいっぱいですか?それ以外の場合は、値がゼロの要素が多数ある場合に試してみてくださいsparse。多くのメモリを節約できます。

私の知る限り、float16サポートされていません。float-datatypeに入れることができる最低singleのものは、32ビットのデータ型であるwith です。

A = single( rand(50) );

定数を掛けて にキャストできint16ますが、精度が失われます。

于 2012-08-29T05:23:32.953 に答える
5

Matlab がすぐにサポートする数値クラスは次のとおりです。

int8
int16
int32
int64
uint8
uint16
uint32
uint64
single (32-bit float)
double (64-bit float)

プラス複雑なデータ型。残念ながら、16ビット浮動小数点数はありません。

Mathworks のファイル交換で、半精度浮動小数点ライブラリがあるようです。ただし、MEX が必要です。

于 2012-08-29T07:06:23.213 に答える