书生大模型实战营(2)——函数实现+Vscode连接InternStudio debug笔记

news/2025/1/16 11:17:32/

第二关任务:

任务一:请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。

任务二:请使用本地vscode连接远程开发机,将上面你写的wordcount函数在开发机上进行debug,体验debug的全流程,并完成一份debug笔记(需要截图)。

1、基础知识

这里需要了解Python和debug,可以查看文档学习。

2、使用vscode连接开发机进行python debug

VScode连接开发机可以去看上一篇书生大模型实战营(1)——InterStudio基础知识+Vscode SSH连接远程服务器+Linux基础指令

点击插件,可以看到本地和开发机上的插件,如果开发机没有安装python插件,点击安装:

单击vscode页面下方有一个X和!的位置可以快速打开vscode的控制台,然后进入TERMINAL。

TIPS右上方的+可以新建一个TERMINAL。

2.1debug单个python文件

首先新建文件夹,写一个简单的python程序来做debug演示。

启动debug:

当代码在断点处停下来时,你可以查看和修改变量的值。在“Run and Debug”侧边栏的“Variables”(变量)部分,你可以看到当前作用域内的所有变量及其值。

单步执行代码

从左到右一次是;

  • 1: continue: 继续运行到下一个断点

  • 2: step over:跳过,可以理解为运行当前行代码,不进入具体的函数或者方法。

  • 3: step into: 进入函数或者方法。如果当行代码存在函数或者方法时,进入代码该函数或者方法。如果当行代码没有函数或者方法,则等价于step over。

  • 4: step out:退出函数或者方法, 返回上一层。

  • 5: restart:重新启动debug

  • 6: stop:终止debug

改动代码后运行:

2.2在vscode使用命令行进行debug

当py文件有很多参数和复杂文件关系时,直接使用命令行来发起debug会是一个更好的选择。

vscode支持通过remote的方法连我们在命令行中发起的debug server。首先我们要配置一下debug的config。

首先我们要配置一下debug的config。

还是点击VSCode侧边栏的“Run and Debug”(运行和调试),单击"create a lauch.json file"

选择debugger时选择python debuger。选择debug config时选择remote attach就行,随后会让我们选择debug server的地址,因为我们是在本地debug,所以全都保持默认直接回车就可以了,也就是我们的server地址为localhost:5678。

debug命令行

现在vscode已经准备就绪,让我们来看看如何在命令行中发起debug。如果没有安装debugpy的话可以先通过pip install debugpy安装一下。

python -m debugpy --listen 5678 --wait-for-client ./myscript.py
  • ./myscript.py可以替换为我们想要debug的python文件,后面可以和直接在命令行中启动python一样跟上输入的参数。记得要先在想要debug的python文件打好断点并保存。

  • --wait-for-client参数会让我们的debug server在等客户端连入后才开始运行debug。在这就是要等到我们在run and debug界面启动debug。

先在终端中发起debug server,然后再去vscode debug页面单击一下绿色箭头开启debug。

2.3对word_count.py文件进行debug 

  • 创建文件

根据任务写函数word_count.py文件

import stringdef wordcount(text):punctuations = string.punctuationfor punct in punctuations:text = text.replace(punct, '')words = text.lower().split()count_dict = {}for word in words:if word in count_dict:count_dict[word] += 1else:count_dict[word] = 1return count_dicttext = """
Got this panda plush toy for my daughter's birthday,
who loves it and takes it everywhere. It's soft and
super cute, and its face has a friendly look. It's
a bit small for what I paid though. I think there
might be other options that are bigger for the
same price. It arrived a day earlier than expected,
so I got to play with it myself before I gave it
to her.
"""
print(wordcount(text))

重复上面步骤

程序结果:


http://www.ppmy.cn/news/1518546.html

相关文章

如何用 AI 编辑器 Cursor 做数据分析?

(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费) 复归 Cursor 是一款基于 AI 技术的代码编辑器,能够提供智能代码补全和生成功能。 其实这款应用,我一年多以前就给你介绍过。 当时…

机器学习在医学中的应用

🎈边走、边悟🎈迟早会好 机器学习在医学中的应用是一个广泛且复杂的领域,涵盖了从基础研究到临床应用的多个方面。以下是一个万字总结的结构性思路,分章节深入探讨不同应用场景、技术方法、挑战与未来展望。 1. 引言 背景与发…

PrimeVue DataTable 属性值解析

primeVue DataTable组件的属性值使用 DataTable属性 NameTypeDefaultdescriptionvaluenull | any[] null 要显示的对象数组。dataKeystring | Function null 唯一标识数据中的记录的字段名称。rowsnumber 0 每页显示的行数。firstnumber 0 要显示的第一行的索引。totalRecordsn…

对比 PDAF、CDAF 和 LAAF 自动对焦技术

深入解析相位检测自动对焦(PDAF) 相位检测自动对焦(PDAF,Phase Detection Auto Focus)是一种高效的自动对焦技术,广泛应用于现代数码相机、无反相机和智能手机摄像头中。为了更好地理解 PDAF,我…

【C++ 面试 - STL】每日 3 题(二)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

链动2+1与消费增值模式的协同效应

大家好,我是吴军,担任一家知名软件开发公司的产品管理负责人。今天,我将与大家分享关于如何运用链动21策略来提升用户留存率和促进复购。 许多人认为链动策略已经过时,但实际上,它依然具有强大的生命力和适应性。链动策…

PostgreSQL与PGVector:将向量存储和搜索集成到数据库中的革命性技术

什么是PGVector? PGVector是一个用于PostgreSQL的扩展,专门为处理高维向量数据而设计。向量化的数据通常表示为浮点数数组,PGVector扩展允许用户将这些数组存储为专门的向量数据类型,并提供高效的向量搜索功能。这对那些需要在数…

我如何使用 Graphviz 来优化我的模型图的布局,,python 人工智能 深度神经网络,

在 Python 中,如果你已经使用 Pyro 的 render_model 函数生成了一个模型的 Graphviz 表示(mace_graph),你可以使用 Graphviz 的 Python 绑定来显示或保存这个图。以下是一些步骤和示例代码,展示如何在 Python 中处理和…