人工智能导论期末实践全流程指南:从选题到报告撰写
这次我们来看一个典型的大学课程期末实践项目——“人工智能导论期末实践报告2026春季12班”。对于计算机、软件工程、人工智能等相关专业的学生来说期末实践报告是检验课程学习成果、锻炼综合能力的关键环节。它不仅仅是理论知识的复述更是将算法、模型、工具应用于具体问题的一次完整演练。一份高质量的人工智能导论实践报告核心在于选题的可行性、技术栈的清晰度、实验过程的完整性和结果分析的深度。很多同学在开始时会感到迷茫该选什么项目需要什么环境代码怎么写报告如何组织本文将以一个虚拟的“2026春季12班”实践报告为蓝本为你拆解从环境准备、模型选择、代码实现、到实验分析、报告撰写的全流程。无论你是正在完成作业的学生还是希望系统了解AI项目实践流程的开发者这篇文章都能提供一套可直接参考的“操作手册”。我们将重点关注几个核心问题如何选择一个难度适中且能体现AI技术点的实践主题需要准备什么样的Python环境和机器学习库如何使用常见的AI模型如Scikit-learn、TensorFlow/PyTorch基础模型、预训练模型完成一个完整的任务实验过程中如何观察资源占用如内存、显存和评估模型性能最后如何将代码、数据、实验结果组织成一份结构清晰、内容充实的报告。本文假设你具备基本的Python编程能力和对机器学习概念的初步了解。我们将按照“环境准备 - 项目选题与设计 - 代码实现与实验 - 结果分析与报告撰写 - 常见问题排查”的顺序展开并提供可复用的代码模板和配置示例。1. 核心能力速览一份AI实践报告应包含什么在动手之前我们先明确一份合格的“人工智能导论”期末实践报告应该涵盖哪些核心模块。这能帮助你建立整体框架避免遗漏关键部分。能力项说明与要求项目类型通常为监督学习任务如分类、回归、无监督学习如聚类、或简单的深度学习应用如图像分类、文本情感分析。应避免过于复杂或需要海量数据的项目。技术栈Python为主语言常用库包括NumPy, Pandas数据处理、Matplotlib/Seaborn可视化、Scikit-learn传统机器学习、TensorFlow/PyTorch深度学习可选。硬件门槛大多数导论级项目对GPU无硬性要求CPU即可运行。若涉及简单图像/文本深度学习模型如用预训练的MobileNet、BERT做微调有GPU如NVIDIA GTX 1060 6G以上可加速训练但非必需。内存建议8GB以上。核心产出1.可运行的源代码.py或Jupyter Notebook文件。2.实验数据集或明确的数据来源与预处理脚本。3.完整的实验报告PDF/Word格式包含选题背景、相关工作、方法描述、实验设置、结果分析、结论与展望。评估重点1.问题定义是否清晰。2.方法选择是否合理能否解释为什么用这个模型。3.实验过程是否完整数据划分、训练、评估。4.结果分析是否深入不止于准确率还要有错误分析、可视化。5.代码与报告规范性。适合场景大学《人工智能导论》、《机器学习基础》等课程的期末大作业、实践项目、创新训练计划入门课题。2. 适用场景与使用边界这个实践框架主要适用于教育和个人学习场景。适合谁正在学习人工智能导论课程的大学生、希望入门AI项目实践的编程爱好者、需要完成一个完整AI项目作为作品集的初学者。能解决什么问题知识整合将课程中学到的搜索、知识表示、机器学习、神经网络等分散的知识点通过一个具体项目串联起来。工程实践熟悉AI项目开发全流程包括环境配置、数据获取与清洗、模型训练调优、结果评估与可视化。报告撰写锻炼技术文档写作能力学习如何清晰地呈现技术方案、实验设计和分析结论。不适合什么场景工业级部署本实践侧重于流程验证和教育目的在模型效率、鲁棒性、大规模数据处理等方面未做高要求。前沿研究选题通常是经典问题如鸢尾花分类、手写数字识别、电影评论情感分析不涉及最新的SOTA模型或复杂任务。伦理与边界数据合规使用的数据集应确保其开源许可允许用于教学和研究。避免使用涉及个人隐私、肖像权、版权的数据。如果使用网络爬虫获取数据必须遵守网站的robots.txt协议并控制请求频率。成果声明报告和代码应是个人或小组的原创工作。引用他人工作代码、模型、论文观点必须明确标注出处严禁抄袭。模型局限性在报告中需客观讨论所用模型的局限性避免夸大其效果或应用范围。3. 环境准备与前置条件工欲善其事必先利其器。一个稳定、隔离的Python环境是项目顺利进行的保障。推荐使用conda或venv创建虚拟环境。3.1 基础软件准备操作系统Windows 10/11, macOS, 或 Linux (如Ubuntu 20.04)均可。本文以Windows为例命令在Linux/macOS下可能略有不同。Python版本推荐 Python 3.8 或 3.9。这是大多数AI库兼容性较好的版本。包管理工具Anaconda/Miniconda (推荐)方便管理环境和安装科学计算包。Python venv轻量级但需要手动安装更多依赖。代码编辑器/IDEVS Code (配合Python插件)、PyCharm Community Edition、或Jupyter Notebook/JupyterLab。3.2 创建并激活虚拟环境以conda为例打开终端Windows: Anaconda Prompt 或 PowerShell; Linux/macOS: Terminal。# 创建一个名为 ai_intro_project 的虚拟环境指定Python版本 conda create -n ai_intro_project python3.9 # 激活环境 conda activate ai_intro_project激活后终端提示符前应显示(ai_intro_project)。3.3 安装核心依赖库在激活的虚拟环境中执行以下命令安装基础包。你可以根据项目需要增删。# 基础科学计算与数据处理 pip install numpy pandas matplotlib seaborn scipy # 机器学习库 (Scikit-learn) pip install scikit-learn # Jupyter Notebook如果需要交互式编程 pip install jupyter notebook # 深度学习框架二选一或都安装导论项目可能只需其一 # 安装PyTorch (请根据CUDA版本去官网获取对应命令无GPU用CPU版本) # 例如无GPU的稳定版 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu # 安装TensorFlow (通常安装CPU版本即可) pip install tensorflow # 其他可能用到的工具 pip install tqdm # 进度条 pip install openpyxl # 处理Excel文件 pip install pillow # 图像处理验证安装在Python交互环境中快速测试。python -c import sklearn; print(fscikit-learn version: {sklearn.__version__}) python -c import torch; print(fPyTorch available: {torch.cuda.is_available()}) # 检查GPU4. 项目选题与方案设计选题是成功的第一步。一个好的选题应该1) 问题明确2) 有现成或易于获取的数据3) 能应用课程所学知识4) 工作量适中。4.1 选题示例这里提供几个不同方向的经典选题供“2026春季12班”的同学参考基于Scikit-learn的鸢尾花分类Iris Classification问题根据鸢尾花的花萼和花瓣测量数据预测其所属种类Setosa, Versicolour, Virginica。数据sklearn.datasets.load_iris()内置数据集。模型逻辑回归、决策树、支持向量机(SVM)、K近邻(KNN)等。重点比较不同传统机器学习算法的性能理解分类评估指标准确率、精确率、召回率、F1-score、混淆矩阵。基于CNN的手写数字识别MNIST问题识别28x28灰度图像中的手写数字0-9。数据torchvision.datasets.MNIST或tensorflow.keras.datasets.mnist。模型构建一个简单的卷积神经网络CNN例如 LeNet-5 的简化版。重点理解CNN的基本结构卷积层、池化层、全连接层掌握使用PyTorch/TensorFlow进行模型定义、训练和评估的流程。基于朴素贝叶斯的新闻文本分类问题将新闻文本自动分类到不同的主题如体育、科技、政治。数据sklearn.datasets.fetch_20newsgroups移除邮件头等信息。模型使用TF-IDF进行文本特征提取结合朴素贝叶斯分类器。重点文本数据预处理分词、去停用词、特征工程、理解朴素贝叶斯原理。基于K-Means的客户细分无监督学习问题根据客户的消费行为数据将客户分成不同的群组。数据在线零售数据集如UCI Machine Learning Repository的“Online Retail”数据集。模型K-Means聚类算法。重点数据标准化、确定最佳聚类数肘部法则、轮廓系数、聚类结果可视化。建议对于第一次完成AI实践的同学选题1鸢尾花分类是绝佳的起点。它数据干净、问题经典、能完整走通机器学习全流程。4.2 方案设计文档在编码前建议用Markdown或文档简单写下方案设计这有助于理清思路也是报告初稿的一部分。# 项目方案设计基于决策树与SVM的鸢尾花分类对比研究 ## 1. 问题描述 使用经典的鸢尾花数据集构建分类模型根据花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征预测鸢尾花属于三个种类中的哪一种。 ## 2. 数据集 - 来源Scikit-learn内置iris数据集。 - 样本数150。 - 特征数4均为连续值。 - 类别数3Setosa, Versicolour, Virginica分布均匀。 ## 3. 方法概述 1. **数据预处理**检查缺失值进行标准化StandardScaler。 2. **模型选择** - 决策树分类器DecisionTreeClassifier - 支持向量机分类器SVC使用RBF核 - 可选逻辑回归LogisticRegression作为基线模型。 3. **实验流程** - 将数据按7:3划分为训练集和测试集。 - 在训练集上训练上述模型。 - 在测试集上评估主要指标准确率、加权平均的精确率/召回率/F1-score。 - 使用交叉验证5折评估模型稳定性。 - 可视化决策边界对于SVM和决策树和特征重要性对于决策树。 ## 4. 预期产出 - 完整的Python脚本.py文件或Jupyter Notebook.ipynb文件。 - 包含所有图表和结果的实验报告。5. 代码实现与实验步骤我们以“鸢尾花分类”为例展示一个完整的代码实现。我们将代码组织在一个Python脚本中并添加详细注释。5.1 完整代码示例 (iris_classification.py) 人工智能导论期末实践 - 鸢尾花分类模型对比 作者2026春季12班 XXX 日期2026-06-XX import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn import datasets from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV from sklearn.preprocessing import StandardScaler from sklearn.tree import DecisionTreeClassifier from sklearn.svm import SVC from sklearn.linear_model import LogisticRegression from sklearn.metrics import (accuracy_score, classification_report, confusion_matrix, ConfusionMatrixDisplay) # 设置中文字体和图表样式可选 plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus] False # 用来正常显示负号 sns.set_style(whitegrid) # 1. 加载数据 print(1. 加载鸢尾花数据集...) iris datasets.load_iris() X iris.data # 特征矩阵 (150, 4) y iris.target # 标签 (150,) feature_names iris.feature_names target_names iris.target_names print(f 特征形状: {X.shape}) print(f 标签形状: {y.shape}) print(f 特征名: {feature_names}) print(f 类别名: {target_names}) # 2. 数据探索与可视化简单版 print(\n2. 数据探索...) # 将数据转为DataFrame方便查看 df pd.DataFrame(X, columnsfeature_names) df[species] y df[species] df[species].map({i: name for i, name in enumerate(target_names)}) print(df.describe()) # 描述性统计 print(f\n类别分布:\n{df[species].value_counts()}) # 特征配对散点图 print(\n 绘制特征配对散点图...) sns.pairplot(df, huespecies, palettehusl, diag_kindkde) plt.suptitle(鸢尾花数据集特征配对图, y1.02) plt.savefig(iris_pairplot.png, dpi300, bbox_inchestight) plt.show() # 3. 数据预处理 print(\n3. 数据预处理...) # 划分训练集和测试集 (70%训练30%测试) X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42, stratifyy) print(f 训练集大小: {X_train.shape}, 测试集大小: {X_test.shape}) # 特征标准化很多模型对尺度敏感如SVM scaler StandardScaler() X_train_scaled scaler.fit_transform(X_train) X_test_scaled scaler.transform(X_test) # 注意使用训练集的scaler来转换测试集 # 4. 模型训练与评估 print(\n4. 模型训练与评估...) models { Logistic Regression: LogisticRegression(random_state42, max_iter200), Decision Tree: DecisionTreeClassifier(random_state42, max_depth3), # 限制深度防止过拟合 SVM (RBF Kernel): SVC(random_state42, probabilityTrue) # probabilityTrue用于后续绘制决策边界 } results {} for name, model in models.items(): print(f\n --- 训练 {name} ---) # 训练模型 model.fit(X_train_scaled, y_train) # 在测试集上预测 y_pred model.predict(X_test_scaled) # 计算准确率 acc accuracy_score(y_test, y_pred) results[name] { model: model, accuracy: acc, y_pred: y_pred } print(f 测试集准确率: {acc:.4f}) # 打印详细的分类报告 print(f 分类报告:\n{classification_report(y_test, y_pred, target_namestarget_names)}) # 5. 模型对比与交叉验证 print(\n5. 模型对比5折交叉验证...) cv_scores {} for name in models.keys(): # 注意交叉验证使用完整的标准化数据会更合理这里为演示我们使用训练集数据 scores cross_val_score(models[name], X_train_scaled, y_train, cv5, scoringaccuracy) cv_scores[name] scores print(f {name}: 平均准确率 {scores.mean():.4f} (/- {scores.std() * 2:.4f})) # 可视化交叉验证结果 fig, ax plt.subplots(figsize(8, 5)) ax.boxplot(cv_scores.values(), labelscv_scores.keys()) ax.set_ylabel(准确率) ax.set_title(5折交叉验证准确率分布对比) plt.savefig(cv_comparison.png, dpi300, bbox_inchestight) plt.show() # 6. 混淆矩阵可视化以SVM为例 print(\n6. 绘制SVM模型的混淆矩阵...) best_model_name max(results, keylambda x: results[x][accuracy]) best_model_info results[best_model_name] print(f 最佳模型: {best_model_name} (准确率: {best_model_info[accuracy]:.4f})) cm confusion_matrix(y_test, best_model_info[y_pred]) disp ConfusionMatrixDisplay(confusion_matrixcm, display_labelstarget_names) disp.plot(cmapplt.cm.Blues) plt.title(f混淆矩阵 - {best_model_name}) plt.savefig(confusion_matrix.png, dpi300, bbox_inchestight) plt.show() # 7. 进阶决策边界可视化仅适用于两个特征 # 由于我们有4个特征需要先降维如PCA或选择两个最重要的特征。 print(\n7. 进阶决策边界可视化选择两个主要特征...) from sklearn.decomposition import PCA # 使用PCA降维到2维以便可视化 pca PCA(n_components2) X_train_pca pca.fit_transform(X_train_scaled) X_test_pca pca.transform(X_test_scaled) # 在降维后的数据上重新训练一个SVM仅用于可视化 svm_for_plot SVC(random_state42) svm_for_plot.fit(X_train_pca, y_train) # 绘制决策边界 def plot_decision_boundary(X, y, model, title): h .02 # 网格步长 x_min, x_max X[:, 0].min() - 1, X[:, 0].max() 1 y_min, y_max X[:, 1].min() - 1, X[:, 1].max() 1 xx, yy np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) Z model.predict(np.c_[xx.ravel(), yy.ravel()]) Z Z.reshape(xx.shape) plt.contourf(xx, yy, Z, alpha0.3, cmapplt.cm.coolwarm) scatter plt.scatter(X[:, 0], X[:, 1], cy, edgecolorsk, cmapplt.cm.coolwarm) plt.xlabel(PCA主成分1) plt.ylabel(PCA主成分2) plt.title(title) plt.legend(handlesscatter.legend_elements()[0], labelslist(target_names)) return plt plt.figure(figsize(8, 6)) plot_decision_boundary(X_train_pca, y_train, svm_for_plot, SVM决策边界 (PCA降维训练集)) plt.savefig(decision_boundary.png, dpi300, bbox_inchestight) plt.show() print(\n 实验完成 ) print(f所有图表已保存至当前目录。最佳模型为 {best_model_name}测试集准确率 {best_model_info[accuracy]:.4f})5.2 如何运行与观察保存代码将上面的代码复制到一个名为iris_classification.py的文件中。运行脚本在终端中确保已激活ai_intro_project环境并切换到脚本所在目录。cd /path/to/your/project python iris_classification.py观察输出脚本会逐步打印加载数据、数据探索、模型训练、评估结果等信息。查看图表脚本运行后会在当前目录生成多张PNG图片iris_pairplot.png,cv_comparison.png,confusion_matrix.png,decision_boundary.png这些是报告的重要素材。5.3 实验过程记录在运行代码时你应该有意识地记录以下信息用于填充实验报告环境信息Python版本、库版本可通过pip list导出。数据划分训练集/测试集的具体样本数。模型参数你为每个模型设置的超参数如决策树的max_depthSVM的核函数。运行结果控制台打印的准确率、分类报告、交叉验证分数。图表分析对生成的每张图进行简要描述和解读例如从配对散点图可以看出花瓣长度和宽度对区分物种最有效混淆矩阵显示模型主要混淆了Versicolour和Virginica两类。6. 资源占用与性能观察对于导论级别的项目性能通常不是瓶颈但了解如何观察资源占用是重要的工程习惯。6.1 如何监控资源以Python为例你可以在代码关键位置插入资源监控语句。import psutil import os import time def monitor_resources(): 监控当前进程的内存和CPU占用 process psutil.Process(os.getpid()) mem_info process.memory_info() cpu_percent process.cpu_percent(interval0.1) # 短暂间隔获取CPU使用率 print(f内存占用: {mem_info.rss / 1024 / 1024:.2f} MB, CPU使用率: {cpu_percent:.1f}%) # 在数据加载后、模型训练前后调用 print(数据加载后资源) monitor_resources() print(\n开始训练SVM...) start_time time.time() # ... 训练代码 ... end_time time.time() print(fSVM训练耗时: {end_time - start_time:.2f} 秒) monitor_resources()注意需要先安装pip install psutil。6.2 性能影响因素分析数据规模鸢尾花150样本和MNIST6万训练样本的训练时间差异巨大。报告里应提及数据量对训练时间的影响。模型复杂度比较逻辑回归快、决策树快、SVM较慢尤其大数据或复杂核的训练时间。特征维度高维特征如文本TF-IDF后的数千维会显著增加计算和内存开销。硬件差异在报告中可以注明你的实验环境如CPU: Intel i5-1135G7, RAM: 16GB。对于深度学习项目需说明是否使用GPU如NVIDIA GTX 1650 4G并观察GPU显存占用可通过nvidia-smi命令或torch.cuda.memory_allocated()查看。7. 实验报告撰写指南代码跑通只是成功了一半清晰、专业的报告是展示你工作的窗口。报告建议采用以下结构7.1 报告基本结构人工智能导论期末实践报告 学号XXX 姓名XXX 班级2026春季12班 日期2026年6月XX日 摘要 200字以内概括项目目标、方法、主要结果和结论 1. 引言 - 项目背景与意义为什么选这个问题 - 问题定义要解决的具体任务是什么 - 报告结构 2. 相关工作 - 简要介绍该领域的经典方法或相关研究例如鸢尾花分类常用哪些模型 - 说明你选择当前方法的原因。 3. 方法与模型 - 数据集介绍来源、规模、特征、标签 - 数据预处理步骤缺失值处理、标准化、划分 - 使用的模型及其原理简介逻辑回归、决策树、SVM的简要数学描述或直观解释 - 实验设置训练/测试集比例、评估指标、超参数设置 4. 实验与结果分析 - **4.1 数据探索性分析**附上配对散点图并描述观察到的规律。 - **4.2 模型性能对比**用表格展示各模型在测试集上的准确率、精确率、召回率、F1-score。 | 模型 | 准确率 | 精确率加权平均| 召回率加权平均| F1-score加权平均| |---|---|---|---|---| | 逻辑回归 | 0.9778 | ... | ... | ... | | 决策树 | 0.9556 | ... | ... | ... | | SVM | 0.9778 | ... | ... | ... | - **4.3 交叉验证结果**附上箱线图说明模型稳定性。 - **4.4 混淆矩阵分析**附上最佳模型的混淆矩阵图分析哪些类别容易被混淆可能的原因是什么。 - **4.5 决策边界可视化**如果做了解释降维后的决策边界图。 - **4.6 资源消耗**记录训练时间、内存占用可选。 5. 讨论 - 总结哪个模型表现最好为什么结合模型特性和数据特点 - 分析模型可能的局限性例如线性模型对非线性数据的拟合能力。 - 如果时间/资源允许下一步可以做什么改进例如尝试更多模型、进行特征工程、调整超参数 6. 结论 - 简要重申项目的主要发现和贡献。 7. 参考文献 - 列出引用的数据集、库文档、教程或论文格式要规范。 附录 - 源代码可以附关键部分或说明完整代码的获取方式。 - 生成的所有图表。7.2 报告撰写技巧图文并茂将代码生成的图表清晰地插入报告中并为每张图添加编号和标题如“图1 鸢尾花特征配对散点图”在正文中引用。数据说话多用具体数值准确率0.9778和对比表格来支撑你的结论。分析深入不要只说“SVM效果更好”要尝试解释“因为SVM通过核函数能够处理线性不可分的情况而鸢尾花数据可能存在一定的非线性边界”。格式规范注意字体、字号、段落、页边距的统一。使用标题层级保持结构清晰。8. 常见问题与排查方法在实践过程中你可能会遇到以下问题问题现象可能原因排查方式解决方案ModuleNotFoundError: No module named sklearn依赖库未安装或在错误的Python环境中。在终端输入python --version和pip list | grep scikit-learn。1. 确认已激活正确的conda/venv环境。2. 在激活的环境中运行pip install scikit-learn。训练时警告ConvergenceWarning模型未收敛如逻辑回归迭代次数不足。查看警告信息确认是哪个模型。增加模型的max_iter参数如LogisticRegression(max_iter1000)。准确率始终为0或极低数据标签错误、特征量纲差异巨大、模型完全不适合。1. 打印前几条数据和标签检查。2. 检查是否做了特征标准化。3. 用极简单的模型如KNN with k1测试。1. 确保数据加载正确。2. 务必进行特征标准化StandardScaler。3. 检查问题定义是否正确是分类还是回归。画图时中文显示为方框系统或Matplotlib未配置中文字体。检查plt.rcParams[font.sans-serif]的设置。1. 确保系统有中文字体如SimHei。2. 或者使用英文标签避免此问题。3. 下载并指定具体字体路径。运行深度学习代码时显存不足CUDA out of memory模型太大或批量大小batch size设置过高。使用nvidia-smi观察显存占用。1. 减小batch_size。2. 使用更小的模型。3. 在CPU上运行device torch.device(cpu)。交叉验证分数方差很大数据划分不均匀或模型不稳定。查看交叉验证每次折叠的分数。1. 使用分层抽样train_test_split(..., stratifyy)。2. 增加交叉验证的折数如10折。3. 考虑使用不同的随机种子多次实验取平均。报告不知道写什么对实验结果分析不够深入。对照“报告撰写指南”检查每个章节是否都有实质性内容。多问“为什么”为什么这个特征重要为什么模型在这里犯错如果换一种数据划分会怎样9. 项目扩展与进阶方向完成基础实践后如果你有余力可以尝试以下扩展让你的项目更出彩超参数调优使用GridSearchCV或RandomizedSearchCV自动搜索模型最佳参数。from sklearn.model_selection import GridSearchCV param_grid {C: [0.1, 1, 10, 100], gamma: [1, 0.1, 0.01, 0.001]} grid GridSearchCV(SVC(), param_grid, refitTrue, verbose2, cv5) grid.fit(X_train_scaled, y_train) print(f最佳参数: {grid.best_params_})特征工程尝试创建新特征如特征组合、多项式特征观察是否提升模型性能。尝试更多模型集成方法如随机森林RandomForestClassifier、梯度提升树GradientBoostingClassifier或简单的神经网络MLPClassifier。部署简易API使用Flask或FastAPI将训练好的模型包装成一个简单的Web API实现“输入花特征返回预测种类”的在线服务。换用更复杂数据集挑战MNIST手写数字识别或CIFAR-10图像分类实践深度学习项目全流程。完成“人工智能导论”的期末实践关键在于动手做、完整走一遍流程、并深入思考。从选择一个明确的问题开始搭建好Python环境按部就班地完成数据加载、预处理、模型训练评估和可视化分析最后将你的思考过程和技术细节整理成一份规范的报告。这个项目本身的技术难度可能不高但整个过程中培养的问题解决能力、工程实践习惯和文档写作能力对你未来的学习和职业发展至关重要。建议你将代码和报告妥善保存这不仅是课程作业也是你个人技术档案中一个扎实的起点。如果在实践中遇到问题多查阅官方文档Scikit-learn、PyTorch、TensorFlow的文档都非常优秀善用搜索引擎并在遵守学术规范的前提下与同学交流讨论。