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 加速计算。这些框架中的张量操作通常包括基本的数学运算、矩阵乘法、卷积、池化等。

相关推荐
boooo_hhh2 小时前
深度学习笔记16-VGG-16算法-Pytorch实现人脸识别
pytorch·深度学习·机器学习
美狐美颜sdk5 小时前
直播美颜工具架构设计与性能优化实战:美颜SDK集成与实时处理
深度学习·美颜sdk·第三方美颜sdk·视频美颜sdk·美颜api
Fansv5876 小时前
深度学习-6.用于计算机视觉的深度学习
人工智能·深度学习·计算机视觉
deephub7 小时前
LLM高效推理:KV缓存与分页注意力机制深度解析
人工智能·深度学习·语言模型
奋斗的袍子0077 小时前
Spring AI + Ollama 实现调用DeepSeek-R1模型API
人工智能·spring boot·深度学习·spring·springai·deepseek
青衫弦语7 小时前
【论文精读】VLM-AD:通过视觉-语言模型监督实现端到端自动驾驶
人工智能·深度学习·语言模型·自然语言处理·自动驾驶
美狐美颜sdk7 小时前
直播美颜SDK的底层技术解析:图像处理与深度学习的结合
图像处理·人工智能·深度学习·直播美颜sdk·视频美颜sdk·美颜api·滤镜sdk
WHATEVER_LEO7 小时前
【每日论文】Text-guided Sparse Voxel Pruning for Efficient 3D Visual Grounding
人工智能·深度学习·神经网络·算法·机器学习·自然语言处理
Binary Oracle7 小时前
RNN中远距离时间步梯度消失问题及解决办法
人工智能·rnn·深度学习
阿_旭8 小时前
基于YOLO11深度学习的糖尿病视网膜病变检测与诊断系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·视网膜病变检测