深度学习篇---数据存储类型


文章目录

  • 前言
  • 第一部分:C语言中的数据存储类型
    • 1. char(通常是8位)
      • 优点
      • 缺点
    • 2. short(通常是16位)
      • 优点
      • 缺点
    • 3. int(通常是32位)
      • 优点
      • 缺点
    • 4. long(通常是32位或64位)
      • 优点
      • 缺点
    • 5. long long(通常是64位)
      • 优点
      • 缺点
    • 6. float(通常是32位)
      • 优点
      • 缺点
    • 7. double(通常是64位)
      • 优点
      • 缺点
  • 第二部分:Python中的数据存储类型
    • 1. int(整数类型)
      • 优点
      • 缺点
    • 2. float(浮点数类型)
      • 优点
      • 缺点
    • 3. complex(复数类型)
      • 优点
      • 缺点
    • 4. bool(布尔类型)
      • 优点
      • 缺点
    • 5. bytes(字节类型)
      • 优点
      • 缺点
    • 6. str(字符串类型)
      • 优点
      • 缺点
    • 7. list(列表类型)
      • 优点
      • 缺点
    • 8. tuple(元组类型)
      • 优点
      • 缺点
    • 9. dict(字典类型)
      • 优点
      • 缺点
  • 第三部分:深度学习中的数据存储类型
    • float32的优点
      • 1.精度与范围
      • 2.硬件支持
      • 3.兼容性
    • 其他数据类型
      • 1.float16(半精度浮点数):
        • 优点
        • 缺点
        • 应用
      • 2.int32(32位整数):
      • 3.int64(64位整数):
      • 4.bool(布尔型):
  • 总结


前言

以上就是今天要讲的内容,本文仅仅介绍了C、Python以及深度学习中的数据类型。


第一部分:C语言中的数据存储类型

在C语言中,不同的存储类型有不同的位数,这些位数决定了变量的取值范围、精度以及内存占用。以下是一些常见的存储类型及其位数,以及它们的优劣点:

1. char(通常是8位)

优点

占用内存最少,适合存储小范围的数据。
适合处理ASCII字符。

缺点

取值范围有限,通常为**-128到127(有符号)0到255(无符号)**。
对于需要更大范围的数据不适用。

2. short(通常是16位)

优点

取值范围比char大,通常为**-32768到32767(有符号)0到65535(无符号)。**
占用内存比int少,适合在内存受限的情况下使用。

缺点

对于一些需要更大范围的数据仍然不够用。
在某些平台上,访问速度可能不如int。

3. int(通常是32位)

优点

取值范围较大,通常为-2,147,483,648到2,147,483,647(有符号)或0到4,294,967,295(无符号)。
在大多数现代平台上,int是整数类型中的标准选择,访问速度通常较快

缺点

占用内存比short和char多。
对于非常大的数值,取值范围仍然有限。

4. long(通常是32位或64位)

优点

在64位平台上,long通常为64位,提供了更大的取值范围,通常为-9,223,372,036,854,775,808到9,223,372,036,854,775,807(有符号)。
适合处理需要更大范围的数据。

缺点

在32位平台上,long与int相同,为32位。
占用内存比int多。

5. long long(通常是64位)

优点

提供了非常大的取值范围,适合处理极大数值。
32位和64位平台上都是64位,提供了跨平台的兼容性

缺点

占用内存是所有整数类型中最多的。
在一些老平台上可能不被支持。

6. float(通常是32位)

优点

占用内存比double少。
对于大多数科学计算和工程应用来说,精度足够。

缺点

精度不如double。
对于需要极高精度的计算可能不够用。

7. double(通常是64位)

优点

提供了更高的精度,适合科学和工程计算
大多数现代平台上是标准的双精度浮点数类型

缺点

占用内存是浮点类型中最多的。
对于一些不需要高精度的应用来说,可能过于奢侈。
选择合适的存储类型时,需要根据应用的需求、内存限制、性能要求以及数据的取值范围来决定。通常,选择最小的适合数据范围的类型可以节省内存并提高效率。

第二部分:Python中的数据存储类型

在Python中,不像C语言那样直接指定变量的位数,因为Python是一种高级语言,它抽象了底层的内存管理。不过,Python中的数据类型仍然有不同的内存占用和适用场景。以下是一些常见的Python数据类型及其优劣点:

1. int(整数类型)

优点

Python 3中的int类型没有固定的大小限制,可以处理任意大小的整数,只受限于可用内存。
简单易用,自动处理整数溢出。

缺点

对于非常大的整数,计算速度可能会变慢。
占用内存比固定大小的整数类型多。

2. float(浮点数类型)

优点

适合表示小数和分数。
在大多数现代平台上,float通常是64位双精度浮点数

缺点

精度有限,不能精确表示所有实数(例如,0.1 + 0.2 不等于 0.3)。
对于需要极高精度的计算,可能不够用。

3. complex(复数类型)

优点

可以轻松表示复数。
内置了复数运算的支持。

缺点

占用内存是浮点数的两倍,因为复数由实部和虚部两个浮点数组成。
对于不需要复数运算的场景来说,使用复数类型是不必要的。

4. bool(布尔类型)

优点

适合表示真**(True)或假(False)**的值。
在内部,布尔值通常占用一个字节

缺点

除了表示真或假之外,布尔类型没有其他用途。
虽然内存占用小,但在大多数情况下,这并不是一个考虑因素。

5. bytes(字节类型)

优点

适合处理二进制数据
占用内存与数据长度成正比。

缺点

不能直接表示文本字符串,需要编码和解码
对于非二进制数据处理不适用。

6. str(字符串类型)

优点

适合处理文本数据。
支持多种编码,如UTF-8,可以处理国际化文本。

缺点

相对于字节类型,字符串类型在内存中占用更多空间,因为每个字符可能占用多个字节。
字符串操作(如连接和比较)可能比字节操作慢。

7. list(列表类型)

优点

可以存储任意类型的元素
提供了丰富的操作方法,如appendpop等。

缺点

访问和插入操作的时间复杂度较高(O(n))。
占用内存较多,因为列表在内部维护了额外的信息(如元素数量)。

8. tuple(元组类型)

优点

不可变,可以作为字典的键。
占用内存通常比列表少,因为元组是不可变的。

缺点

元组一旦创建,其内容不能更改。
功能性不如列表丰富。

9. dict(字典类型)

优点

提供了快速的键值对查找。
键值对形式的数据结构非常适合表示关联数组。

缺点

占用内存较多,因为字典在内部维护了哈希表。
键必须是不可变类型
选择合适的存储类型时,需要考虑数据的特点、操作的频繁程度以及内存的使用效率。Python的数据类型选择更侧重于数据结构和算法的适用性,而不是底层的位数。

第三部分:深度学习中的数据存储类型

在深度学习中,经常使用**float32(32位浮点数)**作为默认的数据类型,原因如下:

float32的优点

1.精度与范围

精度与范围: float32提供了足够的精度来表示大多数深度学习模型中的权重和梯度,同时其数值范围也足够大,可以覆盖大多数训练过程中遇到的数值。

2.硬件支持

硬件支持: 现代GPU和TPU针对float32运算进行了优化,使用float32可以获得更好的性能。

3.兼容性

兼容性: 大多数深度学习框架默认使用float32,因此使用这种数据类型可以确保与各种工具和库的兼容性

其他数据类型

除了float32,以下也是深度学习中常用的数据类型:

1.float16(半精度浮点数):

优点

优点:占用的内存更少,可以加快计算速度,尤其是在拥有专门硬件支持的设备上。

缺点

缺点:精度较低,可能导致数值稳定性问题。

应用

应用:在某些情况下,如模型量化或混合精度训练,float16被用于加速训练和减少内存占用。

2.int32(32位整数):

应用:通常用于表示类别标签、索引或需要较高精度的整数运算

3.int64(64位整数):

应用:当int32的范围不足以表示数据时,如大型数据集的索引

4.bool(布尔型):

应用:用于表示真值,例如在条件语句或掩码操作中
选择数据类型时,需要根据模型的精度要求硬件支持、内存限制和性能需求来权衡。在某些情况下,使用较低精度的数据类型(如float16或int8)可以在不显著牺牲模型性能的情况下减少内存使用和加快计算速度。然而,这需要仔细的数值稳定性分析和可能的模型调整。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了C、Python以及深度学习中的数据类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10791.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自制虚拟机(C/C++)(二、分析引导扇区,虚拟机读二进制文件img软盘)

先修复上一次的bug&#xff0c;添加新指令&#xff0c;并增加图形界面 #include <graphics.h> #include <conio.h> #include <windows.h> #include <commdlg.h> #include <iostream> #include <fstream> #include <sstream> #inclu…

LeetCode:63. 不同路径 II

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;63. 不同路径 II 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角&#xff08;即 grid[0][0]…

索引的底层数据结构、B+树的结构、为什么InnoDB使用B+树而不是B树呢

索引的底层数据结构 MySQL中常用的是Hash索引和B树索引 Hash索引&#xff1a;基于哈希表实现的&#xff0c;查找速度非常快&#xff0c;但是由于哈希表的特性&#xff0c;不支持范围查找和排序&#xff0c;在MySQL中支持的哈希索引是自适应的&#xff0c;不能手动创建 B树的…

EigenLayer联合Cartesi:打造面向主流用户的DeFi、AI等新用例

EigenLayer 与 Cartesi 正在开展合作&#xff0c;致力于弥合基础设施协议与终端用户应用之间的鸿沟&#xff1b;鼓励核心开发人员构建人工智能代理、复杂 DeFi、游戏、社交网络等应用场景&#xff1b;得益于 Cartesi 基于 Linux 的协处理器&#xff0c;开发者可复用现有软件库和…

DeepSeek-R1论文研读:通过强化学习激励LLM中的推理能力

DeepSeek在朋友圈&#xff0c;媒体&#xff0c;霸屏了好长时间&#xff0c;春节期间&#xff0c;研读一下论文算是时下的回应。论文原址&#xff1a;[2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 摘要&#xff1a; 我们…

MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译

感谢阅读 注意不含评估以后的翻译原论文地址标题以及摘要介绍部分MiniRAG 框架2.1 HETEROGENEOUS GRAPH INDEXING WITH SMALL LANGUAGE MODELS2.2 LIGHTWEIGHT GRAPH-BASED KNOWLEDGE RETRIEVAL2.2.1 QUERY SEMANTIC MAPPING2.2.2 TOPOLOGY-ENHANCED GRAPH RETRIEVAL 注意不含评…

Kafka中文文档

文章来源&#xff1a;https://kafka.cadn.net.cn 什么是事件流式处理&#xff1f; 事件流是人体中枢神经系统的数字等价物。它是 为“永远在线”的世界奠定技术基础&#xff0c;在这个世界里&#xff0c;企业越来越多地使用软件定义 和 automated&#xff0c;而软件的用户更…

【学习笔记】深度学习网络-正则化方法

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 在之前的文章中介绍了深度学习中用…

Flutter常用Widget小部件

小部件Widget是一个类&#xff0c;按照继承方式&#xff0c;分为无状态的StatelessWidget和有状态的StatefulWidget。 这里先创建一个简单的无状态的Text小部件。 Text文本Widget 文件&#xff1a;lib/app/app.dart。 import package:flutter/material.dart;class App exte…

浅色可视化大屏虽然经常被诟病,也有自己的用武之地呀

一、视觉舒适性与减轻疲劳 在长时间的使用和观察中&#xff0c;浅色可视化大屏能够为用户带来更舒适的视觉体验&#xff0c;减轻视觉疲劳。与深色背景相比&#xff0c;浅色背景通常反射的光线较少&#xff0c;对眼睛的刺激相对较小。尤其是在需要长时间盯着大屏进行数据分析…

Office / WPS 公式、Mathtype 公式输入花体字、空心字

注&#xff1a;引文主要看注意事项。 1、Office / WPS 公式中字体转换 花体字 字体选择 “Eulid Math One” 空心字 字体选择 “Eulid Math Two” 使用空心字时&#xff0c;一般不用斜体&#xff0c;取消勾选 “斜体”。 2、Mathtype 公式输入花体字、空心字 2.1 直接输…

el-table组件样式如何二次修改?

文章目录 前言一、去除全选框按钮样式二、表头颜色的修改 前言 ElementUI中的组件el-table表格组件提供了丰富的样式&#xff0c;有一个全选框的el-table组件&#xff0c;提供了全选框和多选。 一、去除全选框按钮样式 原本默认是有全选框的。假如有一些开发者&#xff0c;因…

Python安居客二手小区数据爬取(2025年)

目录 2025年安居客二手小区数据爬取观察目标网页观察详情页数据准备工作&#xff1a;安装装备就像打游戏代码详解&#xff1a;每行代码都是你的小兵完整代码大放送爬取结果 2025年安居客二手小区数据爬取 这段时间需要爬取安居客二手小区数据&#xff0c;看了一下相关教程基本…

【13】WLC HA介绍和配置

1.概述 本文对AireOS WLC的HA进行介绍,和大多数网络架构设计一样,单台的WLC是无法保证设备的冗余性的,而且WLC也不是双引擎的设备,所以需要依靠High Available的技术来为WLC提供高可用性。 2.WLC HA类型 AireOS WLC的高可用性技术可以分为N+1的SSO的HA。不是所有的设备都…

因果推断与机器学习—用机器学习解决因果推断问题

Judea Pearl 将当前备受瞩目的机器学习研究戏谑地称为“仅限于曲线拟合”,然而,曲线拟合的实现绝非易事。机器学习模型在图像识别、语音识别、自然语言处理、蛋白质分子结构预测以及搜索推荐等多个领域均展现出显著的应用效果。 在因果推断任务中,在完成因果效应识别之后,需…

Hot100之矩阵

73矩阵置零 题目 思路解析 收集0位置所在的行和列 然后该行全部初始化为0 该列全部初始化为0 代码 class Solution {public void setZeroes(int[][] matrix) {int m matrix.length;int n matrix[0].length;List<Integer> list1 new ArrayList<>();List<…

【深度分析】DeepSeek大模型技术解析:从架构到应用的全面探索

深度与创新&#xff1a;AI领域的革新者 DeepSeek&#xff0c;这个由幻方量化创立的人工智能公司推出的一系列AI模型&#xff0c;不仅在技术架构上展现出了前所未有的突破&#xff0c;更在应用领域中开启了无限可能的大门。从其混合专家架构&#xff08;MoE&#xff09;到多头潜…

【VM】VirtualBox安装CentOS8虚拟机

阅读本文前&#xff0c;请先根据 VirtualBox软件安装教程 安装VirtualBox虚拟机软件。 1. 下载centos8系统iso镜像 可以去两个地方下载&#xff0c;推荐跟随本文的操作用阿里云的镜像 centos官网&#xff1a;https://www.centos.org/download/阿里云镜像&#xff1a;http://…

gentoo 中更改$PS1

现象&#xff1a;gentoo linux Xfce桌面&#xff0c;Terminal 终端&#xff0c;当进入很深的目录时&#xff0c;终端提示符会很长&#xff0c;不方便。如下图所示&#xff1a; 故需要修改$PS1 gentoo 默认的 PS1 在 /etc/bash/bashrc .d/10-gentoo-color.bash中定义&a…

【深度学习】DeepSeek模型介绍与部署

原文链接&#xff1a;DeepSeek-V3 1. 介绍 DeepSeek-V3&#xff0c;一个强大的混合专家 (MoE) 语言模型&#xff0c;拥有 671B 总参数&#xff0c;其中每个 token 激活 37B 参数。 为了实现高效推理和成本效益的训练&#xff0c;DeepSeek-V3 采用了多头潜在注意力 (MLA) 和 De…