上海网站建设-目前企业网站所面临的困惑网络营销的特点包括哪些?
上海网站建设-目前企业网站所面临的困惑,网络营销的特点包括哪些?,自己制作网页怎么制作的,女性时尚资讯+淘宝客模式系列网站源码浙大疏锦行
#x1f4d8; Day 28 实战作业#xff1a;面向对象编程 (OOP) —— 深度学习的基石
1. 作业综述
核心目标#xff1a; 从“面向过程”#xff08;写流水账代码#xff09;进化到“面向对象”#xff08;设计模块化代码#xff09;。 在深度学习中#xf…浙大疏锦行 Day 28 实战作业面向对象编程 (OOP) —— 深度学习的基石1. 作业综述核心目标从“面向过程”写流水账代码进化到“面向对象”设计模块化代码。在深度学习中一切皆对象。所有的神经网络模型本质上都是一个类 (Class)它们继承自 PyTorch 的基类拥有自己的属性层和方法前向传播。涉及知识点类的定义:class,__init__(构造函数),self(实例本身)。继承 (Inheritance): 子类继承父类的能力是代码复用的神器。Super 函数:super().__init__()在子类中扩展父类的初始化逻辑。场景类比类 (Class)图纸如“汽车设计图”。对象 (Object)实物如“这辆红色的特斯拉”。继承“跑车”继承自“汽车”自动拥有了轮子和引擎但跑得更快。步骤 1定义你的第一个类 (Blueprint)场景描述我们来模拟定义一个最基础的“模型”类。所有的模型都有名字都能进行预测。任务定义一个类BaseModel。在__init__中初始化属性model_name。定义一个方法predict(data)打印 “正在使用 [模型名] 预测数据…”。实例化用它创建一个名为 “ChatGPT” 的对象并调用predict。# 1. 定义类 (图纸)classBaseModel:def__init__(self,name): 构造函数每次创建新对象时自动调用 self: 代表这个对象自己 self.model_namename# 将传入的名字存到对象属性里print(f️ 模型 [{self.model_name}] 初始化完成)defpredict(self,data): 定义一个方法动作 print(f [{self.model_name}] 正在预测数据:{data})returnPrediction_Result# 2. 实例化 (造出实物)# 创建一个叫 GPT-4 的模型对象my_modelBaseModel(GPT-4)# 3. 调用方法# 注意调用时不需要传 selfPython 会自动处理my_model.predict(今天天气怎么样)# 4. 访问属性print(f当前模型名称属性:{my_model.model_name})️ 模型 [GPT-4] 初始化完成 [GPT-4] 正在预测数据: 今天天气怎么样 当前模型名称属性: GPT-4步骤 2继承的力量 (Inheritance)场景描述现在我们需要一个更具体的“分类模型”。它也是模型所以应该拥有BaseModel的所有能力如名字、预测功能但它还有自己独特的功能如输出类别概率。我们不需要重新写一遍代码只需要让它继承BaseModel。任务定义Classifier类继承自BaseModel。重写 (Override)predict方法让它输出具体的分类结果。实例化Classifier验证它是否既有父类的属性又有子类的新方法。# 定义子类 Classifier括号里写父类名字classClassifier(BaseModel):defpredict(self,data): 子类重写了父类的 predict 方法 print(f [{self.model_name}] 正在进行分类分析:{data})return{Class:Dog,Probability:0.98}defevaluate(self): 子类特有的新方法 print(f [{self.model_name}] 准确率评估中...)# --- 测试继承 ---# 创建一个分类模型对象cls_modelClassifier(ResNet-50)# 调用重写后的方法resultcls_model.predict(一张狗的照片.jpg)print(f输出结果:{result})# 调用子类特有方法cls_model.evaluate()# 验证继承关系print(f它是 BaseModel 的子类吗?{issubclass(Classifier,BaseModel)})️ 模型 [ResNet-50] 初始化完成 [ResNet-50] 正在进行分类分析: 一张狗的照片.jpg 输出结果: {Class: Dog, Probability: 0.98} [ResNet-50] 准确率评估中... 它是 BaseModel 的子类吗? True步骤 3Super 函数 (The Upgrade)场景描述这是深度学习中最常见的写法子类在初始化时不仅要设置自己的新属性比如分类数num_classes还要保留父类的初始化逻辑比如设置model_name。这时就需要用super().__init__(...)来“召唤”父类的构造函数。任务修改Classifier的__init__方法。接收name和num_classes两个参数。使用super().__init__(name)自动处理名字然后手动处理num_classes。classAdvancedClassifier(BaseModel):def__init__(self,name,num_classes):# 1. 先通过 super() 调用父类的初始化把 name 传给它处理# 这样我们就不用重写 self.model_name name 了super().__init__(name)# 2. 再处理子类独有的属性self.num_classesnum_classesprint(f✨ 高级配置: 支持{self.num_classes}分类)definfo(self):print(f模型:{self.model_name}| 类别数:{self.num_classes})# --- 测试 Super ---# 实例化yoloAdvancedClassifier(YOLO-v8,80)# 调用yolo.info()yolo.predict(街景图.jpg)# 依然可以使用父类或重写的方法️ 模型 [YOLO-v8] 初始化完成 ✨ 高级配置: 支持 80 分类 模型: YOLO-v8 | 类别数: 80 [YOLO-v8] 正在预测数据: 街景图.jpg Prediction_Result Day 28 总结通往 PyTorch 的最后一块拼图今天我们掌握了 Python 的Class类机制。至此你已经具备了看懂 PyTorch 核心代码的能力。深度学习对照表今天的代码PyTorch 中的代码class Classifier(BaseModel):class MyNet(nn.Module):def __init__(self, ...):定义网络层 (卷积层, 全连接层)super().__init__(name)super(MyNet, self).__init__()(标准化起手式)def predict(self, data):def forward(self, x):(前向传播)Next Level: Python 基础特训圆满结束接下来的几天我们将把前面 28 天的所有积木Pandas, 绘图, 函数, 类, 异常处理组合起来去攻克最终的大型项目