25春-机器学习作业(留档)

1. Fork 机器学习项目到自己的仓库

首先,在 GitHub 上找到目标项目,并 Fork 到自己的仓库中。 项目地址:Hunter-P/tensorflow-minist:基于 TensorFlow 的手写数字识别

示意图如下:

1745830144594.jpg

1745830154109.jpg

2. 克隆项目到本地

使用以下命令将 Fork 后的仓库克隆到本地:

git clone git@github.com:WuSangui571/tensorflow-minist.git

克隆成功示意图:

image-20250428165147775.png

3. 创建虚拟环境

为了隔离项目环境,使用 Anaconda 创建一个新的虚拟环境。 Anaconda Prompt 中执行以下命令,并在提示时输入 y 确认:

conda create -n minist python=3.8

虚拟环境创建成功示意图:image-20250428165945172.png

4. 打开项目

使用编辑器打开本地项目。 示意图如下:

image-20250428165351347.png

5. 准备数据集

下载 MNIST 数据集,下载地址为: http://yann.lecun.com/exdb/mnist/

下载完成后,将数据集解压并放置在项目根目录下。

6. 安装依赖并试运行项目

激活刚刚创建的虚拟环境,并安装项目所需的 Python 库。安装完成后,尝试运行项目代码。

在此过程中,遇到了以下错误:

示意图如下:

image-20250428172156479.png

7. 发现问题与错误分析

运行时报出以下错误:

AttributeError: module 'tensorflow' has no attribute 'InteractiveSession'

错误原因分析:

  • 该项目原本基于 TensorFlow 1.x 开发,使用了 InteractiveSession()

  • 当前环境安装的是 TensorFlow 2.x,而 2.x 默认启用了 Eager Execution(即时执行模式),不再需要显式创建 Session,因此 InteractiveSession() 已被移除。

8. 解决方法

最简单的兼容方案:启用 TensorFlow 1.x 兼容模式

在项目中进行以下修改即可兼容运行:

  1. 替换导入 TensorFlow 的方式:

# 原始代码
# import tensorflow as tf

# 修改后代码
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

这样可以在 TensorFlow 2.x 环境中继续使用 1.x 的写法,快速跑通项目。 (注意:虽然可行,但项目整体依然基于旧版 API)

9. 运行成功及结果截图

修改代码后,项目可以顺利运行,结果示例如下:(包含时间戳以证明执行时间)

image-20250428173101175.png

image-20250428173503070.png

10. 将修改后的代码推送到远程仓库

使用以下 Git 命令,将本地修改同步到 GitHub 仓库:

git add .
git commit -m "修改 TensorFlow 版本兼容问题"
git push

推送成功示意图:

image-20250428173758282.png

结语

至此,本次机器学习项目部署、运行与调试已全部完成。 我将把修改后的项目代码(不包含数据集文件)发送给老师;同时,老师也可以通过以下项目主页下载完整代码版本(含数据集):

感谢老师的阅读!

  • 微信
  • 赶快加我聊天吧
  • QQ
  • 赶快加我聊天吧
  • weinxin
三桂

发表评论 取消回复 您未登录,登录后才能评论,前往登录