【深度学习】日常笔记16

可以将pd.DataFrame数据结构理解为类似于Excel中的表格。pd.DataFrame是pandas库提供的一个二维数据结构,用于存储和操作具有行和列的数据。它类似于Excel中的工作表,其中每一列可以是不同的数据类型(例如整数、浮点数、字符串等)。虽然DataFrame的每一列可以具有不同的数据类型,但在数据分析和建模过程中,通常建议遵守每列(特征列)的数据类型规范。

创建缺失值NaN的代码:

import pandas as pd

data = {'Name': ['John', 'Alice', 'Bob', None, 'Mike'],

        'Age': [32, 28, 45, 42, None]}

data = {'A': [1, 2, None, 4, 5],

        'B': [1.5, 2.5, None, 4.5, 5.5]}

df['C'] = [None, 2, 3, None, 5]  # 也可以使用None指定缺失值

df = pd.DataFrame(data)

独热编码(One-Hot Encoding)是指将分类变量转换为虚拟变量(dummy variables)的一种常见方法。通过独热编码,我们可以将每个类别表示为一个二进制的指示符特征,其中只有一个特征为1,表示当前观测值所属的类别,其余特征都为0。

pd.get_dummies()函数在Pandas中提供了一种方便的方法来执行独热编码。通过设置dummy_na=True参数,可以将缺失值也视为有效的特征值,并为其创建相应的列。

独热编码通常用于在机器学习和数据分析任务中处理分类变量,以便在建模过程中能够更好地利用这些特征。

计算均⽅误差使⽤的是MSELoss类,也称为平⽅L2范数再乘个1/n,MSE全称为Mean Squared ErrorL2范数:


Adam优化器,常常使用Adam优化器的原因是对初试给定的超参数学习率lr不是很敏感。Adam是一种优化算法的缩写。它代表"Adaptive Moment Estimation"(自适应矩估计)。Adam算法结合了自适应学习率和动量法的优点,广泛应用于深度学习中的参数优化。

Adam算法使用了两个主要的概念:动量(momentum)和自适应学习率。动量可以理解为模拟物体在梯度方向上运动时的惯性,使得参数更新更加平稳。自适应学习率则根据参数的历史梯度信息来自适应地调整学习率,更好地适应不同参数的特性。

Adam算法的主要步骤包括计算梯度的一阶矩估计(即均值)和二阶矩估计(即方差),然后利用这些估计来更新参数。相较于其他传统的优化算法,Adam算法通常能够更快地收敛,并且对于大多数的深度学习任务表现良好。

在进行K折交叉验证时,确保将数据集刚好分成K个fold是理想的情况,但实际应用中可能会遇到无法均匀划分的情况。当数据集的样本数量不能被K整除时,可能会出现以下两种情况:

  1. 如果样本数量不能被K整除并且余数较小,可以选择将剩余的样本均匀分配到各个fold中。例如,如果有100个样本,要进行5折交叉验证,每个fold将有20个样本。如果有101或102个样本,可以将多出来放到已有的fold中,所以会有1或2个fold中有21个样本,而其余的fold中有20个样本。
  2. 如果样本数量不能被K整除并且余数较大,可以选择在数据预处理阶段进行调整。例如,可以考虑随机删除一部分样本,使得数据集能够被K整除。这样可以确保每个fold的样本数尽量接近,并且保持数据的随机性。

在实际应用中,了解数据集的特点和目标任务的要求,以及适应性地选择合适的划分策略,是确保K折交叉验证的有效性的关键。


for epoch in range(num_epochs):
    for X, y in train_iter:
        optimizer.zero_grad()
        l = loss(net(X), y)
        l.backward()
        optimizer.step()
    train_loss.append(log_rmse(net, train_features, train_labels))
    if test_labels is not None:
        test_loss.append(log_rmse(net, test_features, test_labels))

第二重循环的X是一个小批次的特征。X表示每个小批次的特征,而每个小批次包含了batch_size个样本。train_iter是一个数据迭代器,它会根据batch_size将训练数据划分成小批次,并提供每个小批次的特征(X)和标签(y)。因此,在第二重循环中,每次迭代都会处理一个小批次的数据样本。

在每次迭代中,通过for X, y in train_iter语句获取到一个小批次的特征和标签。X表示该小批次的特征,形状为[batch_size, feature_dim],其中batch_size是小批次的大小,feature_dim是特征的维度。y则表示该小批次对应的标签,形状为[batch_size]。

这样做的好处是,通过一次性处理多个样本,可以利用硬件加速的优势,提高训练的效率和速度。同时,通过使用小批次的随机梯度下降(SGD)更新参数,有助于增加模型的泛化能力。


随便参加了一个kaggle比赛


import torch

from torch import nn

net = nn.Sequential(nn.Linear(4, 8), nn.ReLU(), nn.Linear(8, 1))

X = torch.rand(size=(2, 4))

net(X)

上面的模型net具有三个层:

  • 第一层为 nn.Linear(4, 8),它是一个线性变换层,输入大小为4,输出大小为8。
  • 第二层为 nn.ReLU(),它是一个ReLU激活函数层。
  • 第三层为 nn.Linear(8, 1),它是另一个线性变换层,输入大小为8,输出大小为1。

综上所述,网络中的层索引分别是 ‘0’,‘1’ 和 ‘2’,而只有第一个和第三个层有参数。因此,当运行 print(*[(name, param.shape) for name, param in net.named_parameters()]) 时,你会得到以下输出:

('0.weight', torch.Size([8, 4]))

('0.bias', torch.Size([8]))

('2.weight', torch.Size([1, 8]))

('2.bias', torch.Size([1]))

其中,‘0.weight’ 和 ‘0.bias’ 分别代表第一层的权重和偏置参数,‘2.weight’ 和 ‘2.bias’ 分别代表第三层的权重和偏置参数。第二层没有参数,因此没有被打印出来。

net.state_dict()['2.bias'].data可以访问第二层的偏置参数为tensor([-0.0291])。

torch.nn.init.xavier_normal_() 是在高斯分布中采样进行Xavier初始化,而 torch.nn.init.xavier_uniform_() 是在均匀分布中采样进行Xavier初始化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/75124.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UNIAPP中开发企业微信小程序

概述 需求为使用uni-app开发企业微信小程序。希望可以借助现成的uni-app框架,快速开发。遇到的问题是uni-app引入jweixin-1.2.0.js提示异常: Reason: TypeError: Cannot read properties of undefined (reading ‘title’)。本文中描述了如何解决该问题&#xff0c…

提升物流管理效率,快递批量查询高手软件助你一臂之力

物流管理中,准确跟踪和掌握快递的物流信息是非常重要的。而快递批量查询高手软件的出现,大大提高了物流管理的效率,为企业带来了诸多便利。 传统的快递查询方式往往需要手动逐个输入快递单号,费时费力且容易出错。而有了快递批量查…

代理模式【Proxy Pattern】

什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被 代…

React 之 Suspense和lazy

一. Suspense 参考链接&#xff1a;https://react.docschina.org/reference/react/Suspense suspense&#xff1a;n. 焦虑、悬念 <Suspense> 允许你显示一个退路方案&#xff08;fallback&#xff09;直到它的所有子组件完成加载。 <Suspense fallback{<Loadin…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建Java、Python项目

文章目录 一、云IDE1、云IDE简介2、云IDE和云虚拟桌面区别 二、Cloud Studio 简介1、简介2、AI代码助手3、企业源代码安全 三、快速开始1、登录Cloud Studio2、新建工作空间3、代码空间 四、项目构建1、构建Java项目1.1 新建工作空间1.2 初始化项目1.3 初始化小案例1.4、测试Ja…

linux Socket简单编程实例

服务端 网络编程中服务端接受连接的套接字创建过程如下: 1.调用socket函数创建套接字 2.调用bind函数分配IP地址和端口号 3.调用listen函数转为可接收请求状态 4.调用accept函数受理连接请求 #include <stdio.h> #include <stdlib.h> #include <sys/types.h>…

Win10安装GPU支持的最新版本的tensorflow

我在安装好cuda和cudnn后&#xff0c;使用pip install tensorflow安装的tensorflow都提示不能找到GPU&#xff0c; 为此怀疑默认暗转的tensorflow是不带GPU支持的。 在tensorflow官网提供了多个版本的GPU支持的windows的安装包 https://www.tensorflow.org/install/pip?hlz…

性能优化-react阻止子组件重渲染

因为父组件的状态变更会触发子组件的渲染&#xff0c;可以用shouldComponentUpdate或memo来阻止。下面就来介绍这两种方法。 类组件-shouldComponentUpdate 注&#xff1a;变化需要在render中打印&#xff0c;在component中检测不到 核心代码: 子组件中用shouldComponentUpda…

实现定时发送天气信息到企微群

场景描述&#xff1a; 每天定时自动发送天气信息到企业微信群。通过Aboter如何实现呢&#xff1f; 步骤&#xff1a; 在【应用市场 > IPaaS应用 】中找到企微群定时发送天气信息的模板应用&#xff0c;点击【安装】。 在【IPaaS应用】流程列表中找到刚安装好的模板应用&…

WSL ubuntu 20.04 安装python3

WSL ubuntu 20.04 安装python3 直接通过命令行安装python sudo apt-get install python3 在/usr/bin目录下查看所有python版本 同时需要在系统路径中加入软链接&#xff0c;将默认的python定向到python3上&#xff1a; sudo ln -s /usr/bin/python3.6 /usr/bin/python

【C++】红黑树模拟实现插入功能(包含旋转和变色)

红黑树模拟实现并封装为map和set 前言正式开始红黑树概念红黑树基本要求大致框架树节点树 调整红黑树使其平衡第一种&#xff1a;cur红&#xff0c;p红&#xff0c;g黑&#xff0c;u存在且为红第二种&#xff1a;cur红&#xff0c;p红&#xff0c;g黑&#xff0c;u不存在或为黑…

实验记录——TT

8月份的小小实验 安装虚拟环境下载相关软件功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也…

视频汇聚平台EasyCVR安防监控视频汇聚平台的FLV视频流在VLC中无法播放的问题解决方案

众所周知&#xff0c;TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入&#xff0c;包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上&#xff0c;视频监控…

Win10启动Jmeter报错提示jmeter.log拒绝访问问题

jmeter版本&#xff1a;5.4.1 查看版本 在dos命令窗口中进入jmeter安装目录下的bin目录中&#xff1a;执行jmeter - v命令 我启动的方式是&#xff1a;进入jmeter安装目录下的bin目录中双击jmeter.bat启动的。结果报错&#xff0c;但是不影响使用。 报错日志如下&#xff1a; …

【springmvc系】利用RequestBodyAdviceAdapter做接口鉴权

需求 有个简单的需求&#xff0c;对于第三方接口我们需要做个简单的鉴权机制&#xff0c;这边使用的是非对称性加密的机制。我们提供三方公钥&#xff0c;他们通过公钥对接口json报文使用加密后的报文请求&#xff0c;我们通过对接收过来的请求某一个加密报文字段来进行RSA解密…

学习笔记十四:K8S最小调度单元POD概述

K8S最小调度单元POD概述 k8s核心资源Pod介绍Pod是什么Pod如何管理多个容器Pod网络Pod存储代码自动发版更新收集业务日志 Pod工作方式自主式Pod控制器管理的Pod(防误删除) 如何基于Pod运行应用 k8s核心资源Pod介绍 K8s官方文档&#xff1a;https://kubernetes.io/ K8s中文官方文…

linux系统虚拟主机开启支持SourceGuardian(sg11)加密组件

注意&#xff1a;sg11我司只支持linux系统虚拟主机自主安装。支持php5.3及以上版本。 1、登陆主机控制面板&#xff0c;找到【远程文件下载】这个功能。 2、远程下载文件填写http://download.myhostadmin.net/vps/sg11_for_linux.zip 下载保存的路径填写/others/ 3、点击控制…

浅析前端请求登录与后台对接

首先确保前后端接口参数一致&#xff0c;我这里使用的是ant design Pro 前端框架 小技&#xff1a;shiftf6&#xff0c;全局重构&#xff0c;当接口不一致时很方便 前&#xff1a; 后&#xff1a; 前后端交互&#xff1a;前端需要向后端发送请求&#xff0c;前端ajax来请求后…

测试相关Liunx基础知识

Linux的历史和安装 基本常识 Liunx目录结果 常见

瑞数信息《2023 API安全趋势报告》重磅发布: API攻击持续走高,Bots武器更聪明

如今API作为连接服务和传输数据的重要通道&#xff0c;已成为数字时代的新型基础设施&#xff0c;但随之而来的安全问题也日益凸显。为了让各个行业更好地应对API安全威胁挑战&#xff0c;瑞数信息作为国内首批具备“云原生API安全能力”认证的专业厂商&#xff0c;近年来持续输…