Datawhale AI夏令营
基础概念
ipynb
.ipynb 文件是 Jupyter Notebook 的文件格式,用于保存 Jupyter Notebook 中的代码、文本、可视化等。Jupyter Notebook 是一种交互式的开发环境,广泛用于数据科学、机器学习、教学和研究等领域。也可以使用 Markdown 和 LaTeX 来添加格式化文本和数学公式
IPython 提供了一个增强的交互式 Python shell,比标准的 Python 解释器更加强大,支持自动补全、魔法命令(magic commands)、丰富的输入输出历史等功能。在 Jupyter 环境中,IPython 是用于执行 Python 代码的内核
虽然 Jupyter Notebook 最常用于 Python,但它也支持多种编程语言(例如 R、Julia 和 Scala),通过安装相应的内核(Kernels)可以实现多语言支持
Jupyter 是 “Julia, Python, and R” 的缩写,最初专注于这三种语言,但现在已经支持几十种语言
.ipynb 文件实际上是一个 JSON 格式的文本文件(可以用记事本/VScode打开),包含了 Notebook 的所有内容,包括代码单元(code cells)、文本单元(markdown cells)、输出结果等。一个简单的 .ipynb 文件示例如下:
1 | { |
注意:并不是Jupyter包含环境,而是环境包含了Jupyter,在conda的虚拟环境中install Jupyter才可以使用,所以一个Jupyter对应的是一个特定的环境/内核
数据准备
安装依赖库:
- 使用
pip install -r requirements.txt安装所需的库。
导入库:
- 导入
os、pandas、xarray以及 PyTorch 的数据处理模块。
配置数据路径:
- 设置数据特征和数据真值的路径。
- 指定数据年份和预测时间步长。
定义特征和真值类:
Feature类负责加载特征数据。GroundTruth类负责加载真值数据。
定义数据集类:
mydataset类整合特征和真值的加载功能,方便训练时取数据。
实例化数据集和 DataLoader:
- 创建数据集实例并使用
DataLoader将数据集分割为训练集和验证集。
模型构建
定义模型:
- 构建一个简单的卷积神经网络模型
EnhancedModel,包含一个卷积层和一个激活函数。
定义损失函数:
- 使用
SmoothL1Loss作为损失函数。
模型训练
初始化模型参数:
- 使用 Xavier 初始化方法初始化模型参数。
训练模型:
- 设置训练参数(如学习率、权重衰减等)。
- 进行模型训练和验证,记录损失值,并在每个 epoch 结束后保存模型权重。