关于深度学习中的数据结构INT\FLOAT\FP(为使用FP数据类型调用TensorCore的知识储备)

  • 首先我们需要知道何为bits和bytes?

    bits:名为位数
    bytes:为字节
    简单的数就是MB和G的关系!那么8bits=1bytes,下面是各个单位的相互转化!
    (引用自https://blog.youkuaiyun.com/m0_43432638/article/details/89973862)
    *引用自https://blog.youkuaiyun.com/m0_43432638/article/details/89973862

  • INT - 也就是整数,比如INT8就是8bit整数,取值范围是-128~127也就是256(2^8)个数,
    (整数在内存中没什么符号位,区分正负只是为了软件需要)。
    那么为什么后来有INT16 INT32之类的呢?很简单,数值范围不够用了。
    在计算机上,8、16、32、64、128纯粹是因为首先它是二进制,其次数据容易对齐。在编程语言中,不同数据类型并没有强制的使用环境,比如你定义变量是一个8bit数还是32bit数只要够用都可以,只不过数据长度太长占内存。

  • FLOAT、TF FLOAT32

    半精度(16)、单精度(32)、双精度(64)这些概念是在IEEE 754标准里定义的,浮点计数是利用浮动小数点的方式使用不同长度的二进制来表示一个数字,与之对应的是定点数。同样的长度下浮点数能表达的数字范围相比定点数更大,但浮点数并不能精确表达所有实数,而只能采用更加接近的不同精度来表达。单精度的浮点数中采用4个字节也就是32位二进制来表达一个数字,双精度浮点数采用8个字节也就是64bits来表达,当然半精度浮点数也就是采用16bits了。因为采用不同位数的浮点数的表达精度不一样,所以造成的计算误差也不一样,对于需要处理的数字范围大而且需要精确计算的科学计算来说,就要求采用双精度浮点数,而对于常见的多媒体和图形处理计算,32位的单精度浮点计算已经足够了,对于要求精度更低的机器学习等一些应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值