Python学习(一)——配套《PyTorch深度学习实战》

记录一下Python学习过程中的一些问题:


1. 在JupyterLab中查询当前文件的地址

复制代码
import os
print(os.getcwd())
#查询该文件的地址

2. 新建cell

在 JupyterLab 中新建一个单元格(cell)的方法有多种,以下是一些常用的方法:

  1. 使用快捷键
    • B:在当前单元格下方新建一个单元格。
    • A:在当前单元格上方新建一个单元格。

实测有效,虽然看起来挺神奇的,确实方便

  1. 使用工具栏按钮

    • 在工具栏上,你可以找到用于添加单元格的按钮。通常,这些按钮位于工具栏的中间部分,看起来像是一个带有加号的单元格图标。
  2. 使用右键菜单

    • 在工作区的空白处或者在已有单元格的边缘右键点击,然后选择"Insert Cell Above"或"Insert Cell Below"来在相应位置插入新单元格。
  3. 使用命令面板

    • 点击工具栏上的 "Commands" 图标(或者使用快捷键 Ctrl+Shift+P),在命令面板中搜索 "Insert Cell Below" 或 "Insert Cell Above" 并选择它。
  4. 拖拽单元格

    • 你可以将一个单元格拖拽到工作区的空白处,然后释放鼠标,这将在该位置创建一个新的单元格。
  5. 使用菜单

    • 在 JupyterLab 的菜单栏中,点击 "Insert",然后选择 "Insert Cell Below" 或 "Insert Cell Above"。
  6. 使用侧边栏

    • 在 JupyterLab 的侧边栏中,点击 "+" 图标,然后选择 "Code" 或 "Markdown" 来创建一个新的单元格。
  7. 使用拖拽文件

    • 你也可以将一个 .py.ipynb 文件拖拽到 JupyterLab 的工作区中,这将创建一个新的单元格或打开一个新笔记本。

选择适合你的方法来新建单元格,然后你就可以在新单元格中输入代码或 Markdown 文本了。

3. 集合、列表、元祖的区别

在 Python 中,集合(set)、列表(list)和元组(tuple)是三种不同的数据结构,它们各自有不同的特性和用途:

  1. 列表(List)

    • 列表是可变的,这意味着你可以在创建后修改它们(添加、删除或更改元素)。
    • 列表可以包含重复的元素。
    • 列表是有序的,即它们保持元素插入的顺序。
    • 列表可以包含不同类型的元素。
    • 列表支持索引和切片操作。
    • 列表的典型用法包括创建一个有序的元素集合,或者当你需要修改集合中的元素时。
  2. 元组(Tuple)

    • 元组是不可变的,一旦创建就不能修改(不能添加、删除或更改元素)。
    • 元组可以包含重复的元素。
    • 元组也是有序的,并且支持索引和切片操作。
    • 元组可以包含不同类型的元素。
    • 元组通常用于存储不应该改变的数据。
    • 元组是创建不可变集合的推荐方式,它们还可以用作字典的键(因为字典的键必须是不可变的)。
  3. 集合(Set)

    • 集合是无序的,这意味着集合中的元素没有固定的顺序,并且可能会在每次迭代时改变。
    • 集合是可变的,你可以添加或删除元素。
    • 集合不能包含重复的元素,每个元素都是唯一的。
    • 集合不支持索引操作,因为它们是无序的。
    • 集合的典型用法包括消除重复元素、进行集合运算(如并集、交集、差集)。
    • 集合是不可哈希的,因此不能用作字典的键。

以下是一些示例:

python 复制代码
# 列表
my_list = [1, 2, 3, 4, 5]
my_list.append(6)  # 添加元素
my_list[1] = 20    # 修改元素

# 元组
my_tuple = (1, 2, 3, 4, 5)
# my_tuple[1] = 20  # 这会引发 TypeError,因为元组是不可变的

# 集合
my_set = {1, 2, 3, 4, 5}
my_set.add(6)  # 添加元素
# my_set[1]  # 这会引发 TypeError,因为集合不支持索引

选择使用哪种数据结构取决于你的具体需求,比如是否需要有序性、是否允许重复元素、是否需要修改集合等。


4. 张量的二维表达是矩阵

张量(Tensor)和矩阵(Matrix)是线性代数中的两个概念,它们有一定的联系,但在维度和应用上有所不同。

  1. 矩阵

    • 矩阵是一个二维数组,由行和列组成,可以看作是特殊的张量。
    • 矩阵中的元素通常用两个索引来访问,如 ( a_{ij} ),其中 ( i ) 表示行索引,( j ) 表示列索引。
    • 矩阵在数学、物理学和工程学中有广泛的应用,特别是在线性变换、系统方程和图形变换等领域。
  2. 张量

    • 张量是多维数组的推广,可以有任意数量的维度。例如,0维张量是一个标量,1维张量是一个向量,2维张量是一个矩阵。
    • 张量中的元素可以用多个索引来访问,如 ( a_{ijk} ),其中 ( i )、( j ) 和 ( k ) 分别表示不同维度的索引。
    • 张量在物理学中用于描述具有多个分量的物理量,如应力、应变等。在深度学习中,张量用于表示数据和权重,可以是多维的,以适应不同的网络结构和计算需求。

在深度学习和计算机科学中,张量的概念被广泛使用,尤其是在以下领域:

  • 神经网络:张量用于表示网络的输入、输出和权重。
  • 图像处理:图像可以表示为三维张量(高度、宽度、颜色通道)。
  • 自然语言处理:文本数据可以表示为张量,用于模型的输入和处理。

在 PyTorch 和 TensorFlow 等深度学习框架中,张量是核心数据结构,它们提供了对多维数组的高效操作,并且可以利用 GPU 加速计算。这些框架中的张量操作通常包括基本的数学运算、矩阵乘法、卷积、池化等。

相关推荐
薛定谔的猫19826 小时前
十六、用 GPT2 中文古文模型实现经典名句续写
人工智能·深度学习·gpt2·大模型 训练 调优
jay神6 小时前
基于深度学习的交通流量预测系统
人工智能·深度学习·自然语言处理·数据集·计算机毕业设计
春日见6 小时前
Autoware使用教程
大数据·人工智能·深度学习·elasticsearch·搜索引擎·docker·容器
薛定谔的猫19826 小时前
十五、基于 GPT2 中文模型实现歌词自动续写
人工智能·深度学习·gpt2·大模型 训练 调优
大模型玩家七七7 小时前
证据不足 vs 证据冲突:哪个对模型更致命
数据库·人工智能·pytorch·深度学习·安全
Yeats_Liao7 小时前
压力测试实战:基于Locust的高并发场景稳定性验证
人工智能·深度学习·机器学习·华为·开源·压力测试
咚咚王者7 小时前
人工智能之核心技术 深度学习 第六章 生成对抗网络(GAN)
人工智能·深度学习·生成对抗网络
IRevers7 小时前
RF-DETR:第一个在COCO上突破60AP的DETR(含检测和分割推理)
图像处理·人工智能·python·深度学习·目标检测·计算机视觉
是小蟹呀^7 小时前
卷积神经网络(CNN):池化操作
人工智能·深度学习·神经网络·cnn
薛定谔的猫19827 小时前
十四、基于 BERT 的微博评论情感分析模型训练实践
人工智能·深度学习·bert