当前位置: 首页 > news >正文

ccc-台大林轩田机器学习基石-hw1

文章目录

      • Question1-14
      • Question15-PLA
      • Question16-PLA平均迭代次数
      • Question17-不同迭代系数的PLA
      • Question18-Pocket_PLA
      • Question19-PLA的错误率
      • Question20-修改Pocket_PLA迭代次数

Question1-14

image-20230213222138283
对于有明确公式和定义的不需要使用到ml

image-20230213222256170
智能系统在与环境的连续互动中学习最优行为策略的机器学习问题,学习最优的序贯决策
image-20230213222314214
无标签分类
image-20230213222319181
从标注数据 学习预测模型
image-20230213222342472
主动地提出一些标注请求,将一些经过筛选的数据提交给专家进行标注
image-20230213222358722

  • 解题关键是计算N+1到N+L上的偶数个数
  • 0到N的偶数个数是⌊N⌋2\frac{ ⌊N⌋}{2}2N
  • 问题转化成(0到N+L的偶数个数-0到N的偶数个数)
    image-20230213222616934
    generate了D,但是N+1到N+L上L个点没有generate。每个点都有{被generate,没被generate}两种可能,所以是2L2^L2L
    image-20230213222648857
    由“无免费午餐定理”可知,任何算法在没有噪声时对于未知样本期望相等
    image-20230213222916263
    P(5orange&5else)=C105210P(5orange\&5else)=\frac{C_{10}^5}{2^{10}}P(5orange&5else)=210C105

在这里插入图片描述

from scipy.special import comb
print(comb(10,5)/2**10)

image-20230213222910522
P(9orange&1else)=C1090.99×0.1P(9orange\&1else)=\frac{C_{10}^9}{0.9^{9}\times0.1}P(9orange&1else)=0.99×0.1C109
在这里插入图片描述

print(comb(10,9)*((0.9)**9)*0.1)

image-20230213222906378

  • 分v=0.1和0时讨论
    P=C101(910)1(110)9+C100(110)10P=C_{10}^1{(\frac 9{10})^{1}{(\frac 1 {10})}^{9} }+C_{10}^0{{(\frac 1 {10})}^{10}}P=C101(109)1(101)9+C100(101)10
    在这里插入图片描述
    image-20230213222902507
    Hoeffding:P[∣μ−v∣>ϵ]≤2e−2ϵ2NP[v≤0.1]=P[0.9−v≥0.8]=P[μ−v≥0.8]≤P[∣μ−v∣≥0.8]≤2e−2×0.82×10≈5.5215451440744015×10−6Hoeffding:\mathbb P[| \mu-v|>\epsilon]\le 2e^{-2\epsilon ^2N}\\ \begin{aligned} \mathbb P[v\le 0.1] &=P[0.9-v\ge 0.8]\\ &=P[\mu-v\ge 0.8]\\ &\le P[|\mu-v|\ge 0.8]\\ &\le 2e^{-2\times 0.8^2\times 10}\\ &\approx5.5215451440744015\times 10^{-6} \end{aligned}Hoeffding:P[μv>ϵ]2e2ϵ2NP[v0.1]=P[0.9v0.8]=P[μv0.8]P[μv0.8]2e2×0.82×105.5215451440744015×106
    image-20230213222854537
  • A:奇数绿,偶数橙
  • B:奇数橙,偶数绿
  • C:1-3橙,4-6绿
  • D:1-3绿,4-6橙

5个橙1,只可能是BC中,所以132=8256\frac{1}{32}=\frac{8}{256}321=2568

image-20230213222848025

  • 1全橙:BC
  • 2全橙:AC
  • 3全橙:BC
  • 4全橙:AD
  • 5全橙:BD
  • 6全橙:AD
  • 全A,B,C,D被重复算了一遍,要减去4
    P=4×25−445=31256P=\frac{4\times2^5-4}{4^5}=\frac {31}{256}P=454×254=25631
    image-20230213222842952

Question15-PLA

image-20230213222842952
data链接
在这里插入图片描述

代码部分:
utils函数:

import numpy as np
#判别函数,判断所有数据是否分类完成
def Judge(X, y, w):n = X.shape[0]num = np.sum(X.dot(w) * y > 0)return num == ndef PLA(X, y, eta=1, max_step=np.inf):# 获取维度n, d = X.shape# 初始化w = np.zeros(d)# 迭代次数t = 0# 元素的下标i = 0# 错误的下标last = 0while not (Judge(X, y, w)) :if np.sign(X[i, :].dot(w) * y[i]) <= 0:t += 1w += eta * y[i] * X[i, :]# 更新错误last = i# 移动到下一个元素,如果达到n,则重置为0i += 1if i == n:i = 0return t, last, w

主函数:

import numpy as np
import utils as util#读取数据
data = np.genfromtxt("hw1_15_train.dat")
#获取维度
n, d = data.shape
#分离X
X = data[:, :-1]
#添加偏置项1
X = np.c_[np.ones(n), X]
#分离y
y = data[:, -1]
print(util.PLA(X, y))

运行结果:
在这里插入图片描述

Question16-PLA平均迭代次数

image-20230213222936932
代码部分:
utils函数:

import numpy as np
import matplotlib.pyplot as pltdef Judge(X, y, w):n = X.shape[0]num = np.sum(X.dot(w) * y > 0)return num == ndef PLA(X, y, eta=1):n, d = X.shapew = np.zeros(d)t = 0i = 0last = 0while not (Judge(X, y, w)):if np.sign(X[i, :].dot(w) * y[i]) <= 0:t += 1w += eta * y[i] * X[i, :]last = ii += 1if i == n:i = 0return t, last, w#运行g算法n次并返回平均的迭代次数
def average_of_n(g, X, y, n, eta=1):result = []data = np.c_[X, y]for i in range(n):np.random.shuffle(data)X = data[:, :-1]y = data[:, -1]result.append(g(X, y, eta=eta)[0])plt.hist(result)plt.xlabel("迭代次数")plt.title("平均运行次数为" + str(np.mean(result)))plt.show()

主函数:

import numpy as np
import utils as util
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #显示负号data = np.genfromtxt("hw1_15_train.dat")
#获取维度
n, d = data.shape
#分离X
X = data[:, :-1]
#添加偏置项1
X = np.c_[np.ones(n), X]
#分离y
y = data[:, -1]
util.average_of_n(util.PLA, X, y, 2000, 1)

在这里插入图片描述

Question17-不同迭代系数的PLA

image-20230213223011814
修改迭代系数即可:

util.average_of_n(util.PLA, X, y, 2000, 0.5)

在这里插入图片描述

Question18-Pocket_PLA

image-20230213223018992
utils函数:

import matplotlib.pyplot as plt
import numpy as np
#统计错误数量
def count(X, y, w):num = np.sum(X.dot(w) * y <= 0)return np.sum(num)#预处理
def preprocess(data):# 获取维度n, d = data.shape# 分离XX = data[:, :-1]# 添加偏置项1X = np.c_[np.ones(n), X]# 分离yy = data[:, -1]return X, ydef Pocket_PLA(X, y, eta=1, max_step=np.inf):#max_step 限制迭代次数#获得数据维度n, d = X.shape#初始化w = np.zeros(d)#记录最优向量w0 = np.zeros(d)#记录次数t = 0#记录最少错误数量error = count(X, y, w0)#记录元素的下标i = 0while (error != 0 and t < max_step):if np.sign(X[i, :].dot(w) * y[i]) <= 0:w += eta * y[i] * X[i, :]#迭代次数增加t += 1#记录当前错误error_now = count(X, y, w)if error_now < error:error = error_noww0 = np.copy(w)#移动到下一个元素i += 1#如果达到n,则重置为0if i == n:i = 0return error, w0#运行g算法n次,1代表训练集,2代表测试集
def average_of_n(g, X1, y1, X2, y2, n, eta=1, max_step=np.inf):result = []data = np.c_[X1, y1]m = X2.shape[0]for i in range(n):np.random.shuffle(data)X = data[:, :-1]y = data[:, -1]w = g(X, y, eta=eta, max_step=max_step)[-1]result.append(count(X2, y2, w) / m)plt.hist(result)plt.xlabel("错误率")plt.title("平均错误率为"+str(np.mean(result)))plt.show()

主函数:

import matplotlib.pyplot as plt
import numpy as np
import utils as util
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号data_train = np.genfromtxt("hw1_18_train.dat")
data_test = np.genfromtxt("hw1_18_test.dat")X_train, y_train = util.preprocess(data_train)
X_test, y_test = util.preprocess(data_test)util.average_of_n(util.Pocket_PLA, X_train, y_train, X_test, y_test, 2000, max_step=50)

image-20230226150256716

Question19-PLA的错误率

image-20230213223033644
utils函数:

import matplotlib.pyplot as plt
import numpy as npdef count(X, y, w):#判断是否同号num = np.sum(X.dot(w) * y <= 0)return np.sum(num)def Judge(X, y, w):n = X.shape[0]#判断是否同号num = np.sum(X.dot(w) * y > 0)return num == ndef preprocess(data):"""数据预处理"""# 获取维度n, d = data.shape# 分离XX = data[:, :-1]# 添加偏置项1X = np.c_[np.ones(n), X]# 分离yy = data[:, -1]return X, ydef PLA(X, y, eta=1,max_step=np.inf):n, d = X.shapew = np.zeros(d)t = 0i = 0last = 0while not (Judge(X, y, w)) and t<max_step:if np.sign(X[i, :].dot(w) * y[i]) <= 0:t += 1w += eta * y[i] * X[i, :]last = ii += 1if i == n:i = 0return t, last, w#运行g算法n次,1代表训练集,2代表测试集
def average_of_n(g, X1, y1, X2, y2, n, eta=1, max_step=np.inf):result = []data = np.c_[X1, y1]m = X2.shape[0]for i in range(n):np.random.shuffle(data)X = data[:, :-1]y = data[:, -1]w = g(X, y, eta=eta, max_step=max_step)[-1]result.append(count(X2, y2, w) / m)plt.hist(result)plt.xlabel("错误率")plt.title("平均错误率为"+str(np.mean(result)))plt.show()

主函数:

import matplotlib.pyplot as plt
import numpy as np
import utils as util
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号data_train = np.genfromtxt("hw1_18_train.dat")
data_test = np.genfromtxt("hw1_18_test.dat")X_train, y_train = util.preprocess(data_train)
X_test, y_test = util.preprocess(data_test)util.average_of_n(util.PLA, X_train, y_train, X_test, y_test, 2000, max_step=50)

Question20-修改Pocket_PLA迭代次数

image-20230213223038905
utils函数:

import matplotlib.pyplot as plt
import numpy as npdef count(X, y, w):#判断是否同号num = np.sum(X.dot(w) * y <= 0)return np.sum(num)def Judge(X, y, w):n = X.shape[0]#判断是否同号num = np.sum(X.dot(w) * y > 0)return num == ndef preprocess(data):"""数据预处理"""# 获取维度n, d = data.shape# 分离XX = data[:, :-1]# 添加偏置项1X = np.c_[np.ones(n), X]# 分离yy = data[:, -1]return X, ydef Pocket_PLA(X, y, eta=1, max_step=np.inf):#max_step 限制迭代次数#获得数据维度n, d = X.shape#初始化w = np.zeros(d)#记录最优向量w0 = np.zeros(d)#记录次数t = 0#记录最少错误数量error = count(X, y, w0)#记录元素的下标i = 0while (error != 0 and t < max_step):if np.sign(X[i, :].dot(w) * y[i]) <= 0:w += eta * y[i] * X[i, :]#迭代次数增加t += 1#记录当前错误error_now = count(X, y, w)if error_now < error:error = error_noww0 = np.copy(w)#移动到下一个元素i += 1#如果达到n,则重置为0if i == n:i = 0return error, w0#运行g算法n次,1代表训练集,2代表测试集
def average_of_n(g, X1, y1, X2, y2, n, eta=1, max_step=np.inf):result = []data = np.c_[X1, y1]m = X2.shape[0]for i in range(n):np.random.shuffle(data)X = data[:, :-1]y = data[:, -1]w = g(X, y, eta=eta, max_step=max_step)[-1]result.append(count(X2, y2, w) / m)plt.hist(result)plt.xlabel("错误率")plt.title("平均错误率为"+str(np.mean(result)))plt.show()

主函数:

import matplotlib.pyplot as plt
import numpy as np
import utils as util
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号data_train = np.genfromtxt("hw1_18_train.dat")
data_test = np.genfromtxt("hw1_18_test.dat")X_train, y_train = util.preprocess(data_train)
X_test, y_test = util.preprocess(data_test)util.average_of_n(util.Pocket_PLA, X_train, y_train, X_test, y_test, 2000, max_step=100)

image-20230226151901586

相关文章:

ccc-台大林轩田机器学习基石-hw1

文章目录Question1-14Question15-PLAQuestion16-PLA平均迭代次数Question17-不同迭代系数的PLAQuestion18-Pocket_PLAQuestion19-PLA的错误率Question20-修改Pocket_PLA迭代次数Question1-14 对于有明确公式和定义的不需要使用到ml 智能系统在与环境的连续互动中学习最优行为策…...

hadoop03-MapReduce【尚硅谷】

大数据学习笔记 MapReduce 一、MapReduce概述 MapReduce是一个分布式运算程序的编程框架&#xff0c;是基于Hadoop的数据分析计算的核心框架。 MapReduce处理过程为两个阶段&#xff1a;Map和Reduce。 Map负责把一个任务分解成多个任务&#xff1b;Reduce负责把分解后多任务处…...

测牛学堂:软件测试python学习之异常处理

python的捕获异常 程序在运行时&#xff0c;如果python解释器遇到一个错误&#xff0c;则会停止程序的执行&#xff0c;并且提示一些错误信息&#xff0c;这就是异常。 程序停止执行并且提示错误信息&#xff0c;称之为抛出异常。 因为程序遇到错误会停止执行&#xff0c;有时…...

图神经网络--图神经网络

图神经网络 图神经网络图神经网络一、PageRank简介1.1互联网的图表示1.2PageRank算法概述1.3求解PageRank二、代码实战2.1引入库2.2加载数据&#xff0c;并构建图2.3计算每个节点PageRank重要度2.4用节点尺寸可视化PageRank值一、PageRank简介 PageRank是Google最早的搜索引擎…...

React useCallback如何使其性能最大化?

前言 React中最让人畅谈的就是其带来的灵活性&#xff0c;可以说写起来非常的舒服。但是也就是它的灵活性太强&#xff0c;往往让我们忽略了很多细节的地方&#xff0c;而就是这些细节的东西能进行优化&#xff0c;减小我们的性能开销。可以说刚学React和工作几年后写React的代…...

长尾关键词使用方法,通过什么方式挖掘长尾关键词?

当你在搜索引擎的搜索栏中输入有关如何使用长尾关键词的查询时&#xff0c;你可能希望有简单快捷的方式出现在搜索结果中&#xff0c;可以帮助你更好地应用seo。 不过&#xff0c;这里要记住一件事&#xff1a;SEO 策略只会为你的网站带来流量&#xff1b;在你的产品良好之前&a…...

【网络编程套接字(一)】

网络编程套接字&#xff08;一&#xff09;理解源IP地址和目的IP地址理解源MAC地址和目的MAC地址理解源端口号和目的端口号PORT VS PID认识TCP协议和UDP协议网络字节序socket编程接口socket常见APIsockaddr结构简单的UDP网络程序服务端创建套接字服务端绑定字符串IP VS 整数IP客…...

shell脚本入门

实习的时候第一个月的考核就是如何部署一个云资源&#xff0c;当时走的捷径&#xff08;杠杠的搜索能力hhhh&#xff09;找到了一个shell脚本一键部署&#xff0c;后来被leader问起来就如实说了&#xff0c;leader问有没有看懂shell脚本中的逻辑……&#xff08;没有&#xff0…...

【经典蓝牙】 蓝牙HFP层协议分析

HFP 概述 HFP概念介绍 HFP(Hands-Free Profile)&#xff0c; 是蓝牙免提协议&#xff0c; 可以让蓝牙设备对对端蓝牙设备的通话进行控制&#xff0c;例如蓝牙耳机控制手机通话的接听、 挂断、 拒接、 语音拨号等。HFP中蓝牙两端的数据交互是通过定义好的AT指令来通讯的。 &am…...

互联网摸鱼日报(2023-02-26)

互联网摸鱼日报&#xff08;2023-02-26&#xff09; InfoQ 热门话题 迁移工具 Air2phin 宣布开源&#xff0c;2 步迁移 Airflow 至 Dolphinscheduler 专访奇安信董国伟博士&#xff1a;目前开源安全的现状并不乐观&#xff0c;但其重要性已成各方共识 专访Brian Behlendorf&…...

关于程序员中年危机的一个真实案例

​ 关于中年危机&#xff0c;网上已经有了各种各样的解读。但是&#xff0c;这两天一个学员跟我简单几句聊天&#xff0c;却触发了对于中年危机的另一种思考。如果你曾经也有点迷茫&#xff0c;或许你可以稍微花几分钟看下这个故事。 一、无奈的故事 ​ 39岁还出来面试&#x…...

【fly-iot飞凡物联】(2):如何从0打造自己的物联网平台,使用开源的技术栈搭建一个高性能的物联网平台,目前在设计阶段。

目录前言1&#xff0c;fly-iot 飞凡物联2&#xff0c;mqtt-broker 服务3, 管理后台产品/设备设计4,数据存储目前使用mysql&#xff0c;消息存储到influxdb中5,规则引擎使用 ekuiper6, 总结和其他的想法前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/detail…...

Hadoop MapReduce

目录1.1 MapReduce介绍1.2 MapReduce优缺点MapReduce实例进程阶段组成1.3 Hadoop MapReduce官方示例案例&#xff1a;评估圆周率π&#xff08;PI&#xff09;的值案例&#xff1a;wordcount单词词频统计1.4 Map阶段执行流程1.5 Reduce阶段执行流程1.6 Shuffle机制1.1 MapReduc…...

时间复杂度和空间复杂度详解

有一堆数据需要排序&#xff0c;A要使用快速排序&#xff0c;B要使用堆排序&#xff0c;A认为自己的代码更高效&#xff0c;B也认为自己的代码更高效&#xff0c;在这种情况下&#xff0c;怎么来判断谁的代码更好一点呢&#xff1f;这时候就有了时间复杂度和空间复杂度。 目录 …...

【C++】面向对象---封装

【C】面向对象—封装 1.封装的意义 封装是C面向对象三大特性之一 封装的意义&#xff1a; 将属性和行为作为一个整体&#xff0c;表现生活的事物将属性和行为加以权限控制 封装意义一&#xff1a; 在设计类的时候&#xff0c;属性和行为写在一起&#xff0c;表现事物 语…...

Docker简介

一、介绍容器虚拟化技术&#xff08;带环境安装的一种解决方案&#xff09;打破程序即应用的观念&#xff0c;透过镜像image将作业系统核心除外&#xff0c;运用应用程序所需要的运行环境&#xff0c;由上而下打包&#xff0c;达到应用程序跨平台间的无缝接轨运作。Docker是基于…...

量化学习(一)数据获取

试验环境 windows10 AnacondaPyCharm&#xff08;小白参考文章&#xff1a;https://coderx.com.cn/?p14&#xff09; VM中安装MySQL5.7&#xff08;设置utf8及相应配置优化&#xff09; 关于复权 小白参考文章&#xff1a;https://zhuanlan.zhihu.com/p/469820288 数据来源 AK…...

java并发编程讨论:锁的选择

java并发编程 线程堆栈大小 单线程的堆栈大小默认为1M&#xff0c;1000个线程内存就占了1G。所以&#xff0c;受制于内存上限&#xff0c;单纯依靠多线程难以支持大量任务并发。 上下文切换开销 ReentrantLock 2个线程交替自增一个共享变量&#xff0c;使用ReentrantLock&…...

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——ReduceTask工作机制

1、ReduceTask工作机制 ReduceTask工作机制&#xff0c;如下图所示。 &#xff08;1&#xff09;Copy阶段&#xff1a;ReduceTask从各个MapTask上远程拷贝一片数据&#xff0c;并针对某一片数据&#xff0c;如果其大小超过一定阈值&#xff0c;则写到磁盘上&#xff0c;否则直…...

Nginx的介绍、安装与常用命令

前言&#xff1a;传统结构上(如下图所示)我们只会部署一台服务器用来跑服务&#xff0c;在并发量小&#xff0c;用户访问少的情况下基本够用但随着用户访问的越来越多&#xff0c;并发量慢慢增多了&#xff0c;这时候一台服务器已经不能满足我们了&#xff0c;需要我们增加服务…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...