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

李宏毅深度学习项目——HW1个人笔记

视频链接
PDF链接
googleColab链接
GoogleColab是一个免费的jupyter notebook,可以用上面的gpu资源进行训练

题目

通过前两天的数据,预测第三天某个人感染新冠的概率

范例

导包

# Numerical Operations
import math
import numpy as np# Reading/Writing Data
import pandas as pd
import os
import csv# For Progress Bar
from tqdm import tqdm# Pytorch
import torch 
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader, random_split# For plotting learning curve
from torch.utils.tensorboard import SummaryWriter

工具

def same_seed(seed): '''Fixes random number generator seeds for reproducibility.'''# 输入相同的数据,输出同样的结果torch.backends.cudnn.deterministic = True# 不进行卷积自动优化,保证计算结果是相同的torch.backends.cudnn.benchmark = False# 分别为Numpy,pytorch和所有GPU设置随机种子np.random.seed(seed)torch.manual_seed(seed)if torch.cuda.is_available():torch.cuda.manual_seed_all(seed)# 将提供的数据划分为训练集和验证集
def train_valid_split(data_set, valid_ratio, seed):'''Split provided training data into training set and validation set'''valid_set_size = int(valid_ratio * len(data_set)) train_set_size = len(data_set) - valid_set_size# 随机划分train_set_size个元素为训练集,valid_set_size哥元素为验证集train_set, valid_set = random_split(data_set, [train_set_size, valid_set_size], generator=torch.Generator().manual_seed(seed))return np.array(train_set), np.array(valid_set)# 预测测试数据
def predict(test_loader, model, device):# 设置为评估模式,评估模式的意义是啥?model.eval() # Set your model to evaluation mode.preds = []# 遍历test_loader数据,使用tqdm显示循环进度for x in tqdm(test_loader):# 将x放到device中x = x.to(device)# 禁用梯度计算,因为在预测阶段根本不需要这个,浪费资源                        with torch.no_grad():                   # 进行预测pred = model(x)    # 使用detch()将预测结果从计算图中分离,然后使用cpu()将结果移动到CPU中,最后追加到preds列表                 preds.append(pred.detach().cpu())   # torch.cat()将所有预测结果沿着第0个维度链接起来(即行拼接),然后使用numpy()转成numpy数组preds = torch.cat(preds, dim=0).numpy()  return preds

定义数据集类

# 数据集类,处理和加载用于训练模型或者进行预测的数据
class COVID19Dataset(Dataset):'''x: Features.y: Targets, if none, do prediction.'''def __init__(self, x, y=None):if y is None:self.y = yelse:self.y = torch.FloatTensor(y)self.x = torch.FloatTensor(x)def __getitem__(self, idx):if self.y is None:return self.x[idx]else:return self.x[idx], self.y[idx]def __len__(self):return len(self.x)

定义神经网络模型

# 模型定义,继承自pytorch的nn.Moudule基类(所有神经网络的基类)
class My_Model(nn.Module):def __init__(self, input_dim):# 调用父类的构造函数(必须)super(My_Model, self).__init__()# TODO: modify model's structure, be aware of dimensions. # 定义自己的模型,nn.Sequential是一个容器,按顺序包含一系列的层,这里定义了三个连接层和两个激活函数# 这里的激活函数是ReLu(),意思是如果nn.Linear()的结果小于0,则神经网络不继续往下走,用于缓解梯度消失问题self.layers = nn.Sequential(nn.Linear(input_dim, 16),nn.ReLU(),nn.Linear(16, 8),nn.ReLU(),nn.Linear(8, 1))# 定义了模型的前向传播过程,用于预测def forward(self, x):# 将x放到上面定义的模型中计算x = self.layers(x)# 再去掉x的第二维度,减少不必要的维度,使得张量的形状更适合接下来的计算?为啥x = x.squeeze(1) # (B, 1) -> (B)return x

选择特征

# 选择特征来执行回归
def select_feat(train_data, valid_data, test_data, select_all=True):'''Selects useful features to perform regression'''# 选取所有行的最后一列的数据y_train, y_valid = train_data[:,-1], valid_data[:,-1]# 选取所有行的除了最后一列的数据raw_x_train, raw_x_valid, raw_x_test = train_data[:,:-1], valid_data[:,:-1], test_dataif select_all:# feat_idx等于raw_x_train列的数量,也就是选择所有的特征feat_idx = list(range(raw_x_train.shape[1]))else:feat_idx = [0,1,2,3,4] # TODO: Select suitable feature columns.return raw_x_train[:,feat_idx], raw_x_valid[:,feat_idx], raw_x_test[:,feat_idx], y_train, y_valid

训练循环

# 定义训练器
def trainer(train_loader, valid_loader, model, config, device):# 定义损失函数 这里用的是均值方差MSELosscriterion = nn.MSELoss(reduction='mean') # Define your loss function, do not modify this.# 定义优化算法以及正则化(如何实现正则化)# 这里用的是随机梯度下降SGD,# 其中model.parameters是要优化的参数,即模型中的权重和偏置# lf是learning rate,即学习率,是一个超参数,这里通过config字典中获取# momentum动量,是另一个超参数,帮助优化器在正确的方向上收敛,并减少震荡。动量的值通常设置在0.5到0.9之间# Define your optimization algorithm. # TODO: Please check https://pytorch.org/docs/stable/optim.html to get more available algorithms.# TODO: L2 regularization (optimizer(weight decay...) or implement by your self).optimizer = torch.optim.SGD(model.parameters(), lr=config['learning_rate'], momentum=0.9) # 创建一个写入器,用于记录和可视化训练数据writer = SummaryWriter() # Writer of tensoboard.# 创建文件夹if not os.path.isdir('./models'):os.mkdir('./models') # Create directory of saving models.# 初始化训练总次数,最佳损失值,步数,早停计时器(如果在连续多个训练轮次(epochs)中,模型在验证集上的性能(如损失值或准确率)没有得到提升,那么就会停止训练。)n_epochs, best_loss, step, early_stop_count = config['n_epochs'], math.inf, 0, 0# 循环训练(核心)for epoch in range(n_epochs):# 设置模型为训练模式model.train() # Set your model to train mode.loss_record = []# 用于显示任务进度,每次迭代train_loader时,tqdm就会更新一次进度条# tranin_pbar:通过tqdm封装了数据加载器train_loader# tqdm is a package to visualize your training progress.train_pbar = tqdm(train_loader, position=0, leave=True)# 遍历train_loader中的每一项数据,x是特征,y是目标for x, y in train_pbar:# 重置梯度为0,为啥optimizer.zero_grad()               # Set gradient to zero.# 将数据移动到设备中,比如CPU,比如GPUx, y = x.to(device), y.to(device)   # Move your data to device. # 通过model(x)预测y的值pred = model(x)             # 计算预测值和真实值的损失loss = criterion(pred, y)# 反向传播计算损失的梯度loss.backward()                     # Compute gradient(backpropagation).# 根据计算出的梯度更新模型的参数optimizer.step()                    # Update parameters.# 步数加一step += 1# 将当前的损失值添加到损失记录列表中loss_record.append(loss.detach().item())# Display current epoch number and loss on tqdm progress bar.# 在进度条上显示当前的轮次信息,使用了python的f-string格式化字符串train_pbar.set_description(f'Epoch [{epoch+1}/{n_epochs}]')# 进度条上显示当前的损失值,set_postfix()是在进度条后面加上后缀# loss.detach()这个操作是将当前的损失值从计算图中分离出来,使其不再参与梯度的计算。这样做的好处是可以节省计算资源# .item()是一个方法,它将一个标量张量转换为一个Python数值。train_pbar.set_postfix({'loss': loss.detach().item()})# 计算训练数据的平均损失mean_train_loss = sum(loss_record)/len(loss_record)# 将平均损失写入到TensorBoard中,便于后续可视化writer.add_scalar('Loss/train', mean_train_loss, step)# 设置model模式为评估模式model.eval() # Set your model to evaluation mode.# 重置损失列表loss_record = []# 遍历验证数据for x, y in valid_loader:x, y = x.to(device), y.to(device)# 不使用梯度下降,通过model()得到预测值,与实际值计算losswith torch.no_grad():pred = model(x)loss = criterion(pred, y)# 将loss存到损失列表中loss_record.append(loss.item())# 计算校验数据的平均损失    mean_valid_loss = sum(loss_record)/len(loss_record)# 打印出当前的轮次、训练损失和验证损失print(f'Epoch [{epoch+1}/{n_epochs}]: Train loss: {mean_train_loss:.4f}, Valid loss: {mean_valid_loss:.4f}')writer.add_scalar('Loss/valid', mean_valid_loss, step)# 如果当前的验证损失小于最佳损失,则保存当前模型,并重置早停计数器;否则,早停计数器加1if mean_valid_loss < best_loss:best_loss = mean_valid_losstorch.save(model.state_dict(), config['save_path']) # Save your best modelprint('Saving model with loss {:.3f}...'.format(best_loss))early_stop_count = 0else: early_stop_count += 1# if early_stop_count >= config['early_stop']::如果早停计数器的值大于或等于设定的早停值,那么停止训练if early_stop_count >= config['early_stop']:print('\nModel is not improving, so we halt the training session.')return

配置项

device = 'cuda' if torch.cuda.is_available() else 'cpu'
config = {'seed': 5201314,      # Your seed number, you can pick your lucky number. :)'select_all': True,   # Whether to use all features.'valid_ratio': 0.2,   # validation_size = train_size * valid_ratio'n_epochs': 3000,     # Number of epochs.            'batch_size': 256, 'learning_rate': 1e-5,              'early_stop': 400,    # If model has not improved for this many consecutive epochs, stop training.     'save_path': './models/model.ckpt'  # Your model will be saved here.# ckpt:TensorFlow中用于存储模型参数的一种文件格式
}

数据导入

# Set seed for reproducibility
# 设置在随机种子,保证每次训练的结果都是一样
same_seed(config['seed'])# train_data size: 2699 x 118 (id + 37 states + 16 features x 5 days) 
# test_data size: 1078 x 117 (without last day's positive rate)
# 从文件中导入训练数据以及测试数据,然后把训练数据再划分成训练数据和验证数据
train_data, test_data = pd.read_csv('./covid.train.csv').values, pd.read_csv('./covid.test.csv').values
train_data, valid_data = train_valid_split(train_data, config['valid_ratio'], config['seed'])# Print out the data size.
print(f"""train_data size: {train_data.shape} 
valid_data size: {valid_data.shape} 
test_data size: {test_data.shape}""")# Select features
# 选择特征列
x_train, x_valid, x_test, y_train, y_valid = select_feat(train_data, valid_data, test_data, config['select_all'])# Print out the number of features.
print(f'number of features: {x_train.shape[1]}')# 封装数据集为自定义的dataSet
train_dataset, valid_dataset, test_dataset = COVID19Dataset(x_train, y_train), \COVID19Dataset(x_valid, y_valid), \COVID19Dataset(x_test)# Pytorch data loader loads pytorch dataset into batches.
# shuffle是否在每个训练轮次开始时打乱数据。设置为True可以帮助防止模型记住数据的顺序,从而提高模型的泛化能力# pin_memory这个参数是用来提高数据加载速度的。
# 如果设置为True,那么数据加载器会将数据放在CUDA固定内存(锁页内存)中,而不是默认的交换内存中。
# 当你使用GPU训练模型时,将数据从CPU内存移动到GPU内存的速度会更快。
# 但是,这会占用更多的RAM,因此只在你有足够内存的情况下使用这个选项
train_loader = DataLoader(train_dataset, batch_size=config['batch_size'], shuffle=True, pin_memory=True)
valid_loader = DataLoader(valid_dataset, batch_size=config['batch_size'], shuffle=True, pin_memory=True)
test_loader = DataLoader(test_dataset, batch_size=config['batch_size'], shuffle=False, pin_memory=True)

开始训练

model = My_Model(input_dim=x_train.shape[1]).to(device) # put your model and data on the same computation device.
trainer(train_loader, valid_loader, model, config, device)

相关文章:

李宏毅深度学习项目——HW1个人笔记

视频链接 PDF链接 googleColab链接 GoogleColab是一个免费的jupyter notebook&#xff0c;可以用上面的gpu资源进行训练 题目 通过前两天的数据&#xff0c;预测第三天某个人感染新冠的概率 范例 导包 # Numerical Operations import math import numpy as np# Reading/Wr…...

3D Gaussian Splatting Windows安装

0.安装C++ 编译器 https://aka.ms/vs/17/release/vs_buildtools.exe 1.下载源码 git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive 2.安装cuda NVIDIA GPU Computing Toolkit CUDA Toolkit Archive | NVIDIA Developer 3.安装COLMAP...

人脸识别——可解释的人脸识别(XFR)人脸识别模型是根据什么来识别个人的

可解释性人脸识别&#xff08;XFR&#xff09;&#xff1f; 人脸识别有一个任务叫1:N&#xff08;识别&#xff09;。这个任务将一个人的照片与N张注册照片进行比较&#xff0c;找出相似度最高的人。 这项任务用于刑事调查和出入境点。在犯罪调查中&#xff0c;任务从监控摄像…...

仓库管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;公告管理&#xff0c;物资管理&#xff0c;基础数据管理&#xff0c;用户管理 用户账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;公告管理&#xff0c;物…...

最火AI角色扮演流量已达谷歌搜索20%!每秒处理2万推理请求,Transformer作者公开优化秘诀

卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践&#xff0c;基于大语言模型和RAG技术&#xff0c;集合海量工业领域生态资源方优质产品和知识服务&#xff0c;旨在通过智能搜索、连续交互&#xff0c;实时生成个性化的内容…...

MySQL:MySQL分组排序函数rank()、row_number()、dense_rank()与partition by结合使用

一、前言 在 MySQL 中&#xff0c;虽然标准的 SQL 函数 RANK(), ROW_NUMBER(), 和 DENSE_RANK() 是 SQL 标准的一部分&#xff0c;但早期的 MySQL 版本并不直接支持这些窗口函数。然而&#xff0c;从 MySQL 8.0 开始&#xff0c;这些函数被引入以支持窗口函数&#xff08;也称为…...

opencv c++ 检测图像尺寸大小,标注轮廓

1. 项目背景 本项目旨在开发一个图像处理程序&#xff0c;通过使用计算机视觉技术&#xff0c;能够自动检测图像中物体的尺寸并进行分类。项目利用了开源的计算机视觉库 OpenCV&#xff0c;实现了图像的灰度处理、二值化、轮廓检测、边界框绘制以及尺寸分类等功能。通过这些功…...

Python数据可视化基础:使用Matplotlib绘制图表

Python数据可视化基础&#xff1a;使用Matplotlib绘制图表 数据可视化是数据分析中的重要环节&#xff0c;它可以帮助我们更直观地理解数据。Python作为一门强大的编程语言&#xff0c;提供了多种库来支持数据可视化&#xff0c;其中Matplotlib是最为流行和功能丰富的库之一。…...

Java开发接口设计的原则

在现代软件开发实践中&#xff0c;接口设计扮演着至关重要的角色。它不仅关乎代码的结构和未来的可维护性&#xff0c;还直接影响到软件系统的灵活性和扩展性。本文将通过实例详解几个核心的接口设计原则&#xff0c;帮助开发者更好地编写和管理接口&#xff0c;从而提升软件的…...

[火灾警报系统]yolov5_7.0-pyside6火焰烟雾识别源码

国内每年都会发生大大小小的火灾&#xff0c;造成生命、财产的损失。但是很多火灾如果能够早期发现&#xff0c;并及时提供灭火措施&#xff0c;将会大大较小损失。本套源码采用yolov5-7.0目标检测算法结合pyside6可视化界面源码&#xff0c;当检测到火灾时&#xff0c;能否发出…...

机器学习和深度学习区别

定义和范围&#xff1a; 机器学习&#xff1a;是一门多领域交叉学科&#xff0c;涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改…...

【功能详解】银河麒麟操作系统“安全启动”是如何发挥作用的?

2023年12月&#xff0c;财政部、工信部发布了7项信息类产品《政府采购需求标准》&#xff0c;为包括操作系统在内多项产品的政府集中采购提供政策支撑。其中&#xff0c;安全、可信作为国产操作系统的基本要求备受关注。 安全体系的构建离不开操作系统本身的硬实力&#xff0c…...

关于多线程的理解

#系列文章 关于时间复杂度o(1), o(n), o(logn), o(nlogn)的理解 关于HashMap的哈希碰撞、拉链法和key的哈希函数设计 关于JVM内存模型和堆内存模型的理解 关于代理模式的理解 关于Mysql基本概念的理解 关于软件设计模式的理解 关于Redis知识的理解 文章目录 前言一、线程…...

C语言 | Leetcode C语言题解之第155题最小栈

题目&#xff1a; 题解&#xff1a; //单调栈 单调递减 typedef struct {//正常 stackint stack[10000];int stackTop;//辅助 stackint minStack[10000];int minStackTop; } MinStack;MinStack* minStackCreate() {MinStack* newStack (MinStack *) malloc(sizeof(MinS…...

Qdrant 的基础教程

目录 安装Qdrant安装Qdrant客户端初始化Qdrant客户端创建集合&#xff08;Collection&#xff09;插入向量数据创建索引搜索向量清理资源 Qdrant是一个开源的向量数据库&#xff0c;它专注于高维向量的快速相似性搜索。以下是一个基础的Qdrant教程&#xff0c;帮助你开始使用Qd…...

任务4.8.3 利用SparkSQL统计每日新增用户

实战概述&#xff1a;利用SparkSQL统计每日新增用户 任务背景 在大数据时代&#xff0c;快速准确地统计每日新增用户是数据分析和业务决策的重要部分。本任务旨在使用Apache SparkSQL处理用户访问历史数据&#xff0c;以统计每日新增用户数量。 任务目标 处理用户访问历史数…...

DS知识点总结--线性表定义及顺序表示

数据结构知识点汇总(考研C版) 文章目录 数据结构知识点汇总(考研C版)二、线性表2.1 线性表的定义和操作2.1.1 线性表的定义2.1.2 线性表的基本操作 2.2 线性表的顺序表示2.2.1 顺序表的定义2.2.2 顺序表上的基本操作的实现 二、线性表 2.1 线性表的定义和操作 2.1.1 线性表的…...

百度文库AI产品“橙篇”:支持10万字长文生成,开启AI创作新篇章

6月19日&#xff0c;百度文库发布了一款创新产品「橙篇」&#xff0c;这一行业首创的产品集成了10万字长文生成及多模态编辑能力&#xff0c;成为首个实现「查阅创编」一站式AI自由创作平台的里程碑。 百度“橙篇”官网&#xff1a; 地址&#xff1a;橙篇AI - 用橙篇&#xf…...

wsl子系统ubuntu20.04 设置docker服务开机自启动

docker的重要性毋庸置疑。掌握虚拟化必备工具。windows台式机相信大家都有&#xff0c;那么开启windows的wsl子系统ubuntu来熟悉linux分布式开发就方便多了&#xff0c;用不着另购电脑。docker是在有限成本前提下尽可能多的尝试使用多OS、隔离物理环境影响的方便工具。下面就介…...

SAP ScreenPersonas

https://developers.sap.com/mission.screen-personas.html 跟着这个练习做一遍就了解了Personas 访问SAP提供的Personas练习系统 申请用户 登录练习系统 随便找一个可以支持Personas的程序搞起来&#xff0c;比如IW51 执行后等它出现这个图标就可以开始了....

充电学习—3、Uevent机制和其在android层的实现

sysfs 是 Linux userspace 和 kernel 进行交互的一个媒介。通过 sysfs&#xff0c;userspace 可以主动去读写 kernel 的一些数据&#xff0c;同样的&#xff0c; kernel 也可以主动将一些“变化”告知给 userspace。也就是说&#xff0c;通过sysfs&#xff0c;userspace 和 ker…...

“河南省勘察设计资质整合趋势与企业应对“

"河南省勘察设计资质整合趋势与企业应对" 河南省勘察设计资质的整合趋势与企业应对策略可以从以下几个方面来分析&#xff1a; 整合趋势&#xff1a; 资质标准简化与合并&#xff1a;随着国家和地方政府深化“放管服”改革&#xff0c;勘察设计资质的管理趋向简化&…...

简单了解雪花算法

雪花算法是什么 不多解释。看一看 具体是怎么 生产 唯一ID 的。 ID 由多个数据组合拼接成64位&#xff0c;分别是 时间戳 服务器节点ID 序列号&#xff0c;每个数据项占的位数不固定&#xff0c;可以根据实际需求设置。首位 1 个二进制位 是 符号位。 public long allocate(l…...

决策树算法详细介绍原理和实现

决策树是一种常用的分类算法&#xff0c;它通过一系列的问题将数据分割成不同的分支&#xff0c;最终确定数据属于哪个类别。下面是决策树的原理、实现方式以及一个案例实现的详细介绍。 决策树原理 特征选择&#xff1a;决策树的构建过程首先需要选择一个特征作为节点&#…...

vue:vue2与vue3如何全局注册公共组件(包括涉及到的相关方法函数的讲解)

目录 第一章 vue2全局注册公共组件 1.1 方法一&#xff1a;逐个注册 1.2 方法二&#xff1a;批量注册 1.2.1 require.context()方法解释 第二章 vue3全局注册公共组件 1.1 方法一&#xff1a;逐个注册 1.2 方法二&#xff1a;批量注册 第一章 vue2全局注册公共组件 Vue…...

LoRa126X系列LoRa模块:专为物联网设计而生

LoRa126X是思为无线研发的一款应用于物联网应用的LoRa 前端模块系列&#xff0c;采用 Semtech 公司的 SX1262和SX1268 芯片。该系列模块具有小体积、低功耗&#xff0c;高灵敏度等特点&#xff0c;并且严格遵循无铅工艺生产和测试流程&#xff0c;符合 RoHS 和 Reach 环保标准。…...

个人职业规划(含前端职业线路、前端技术线路、前端核心竞争力、大龄程序员的出路)

1. 了解自己的兴趣与长处 喜欢擅长的事 职业方向 2. 设定长期目标&#xff08;5年&#xff09; 目标内容 建立自己的品牌建立自己的社交网络 适量参加社交活动&#xff0c;认识更多志同道合的小伙伴寻求导师指导 建立自己的作品集 注意事项 每年元旦进行审视和调整永葆积极…...

【设计模式深度剖析】【10】【行为型】【状态模式】

&#x1f448;️上一篇:访问者模式 | 下一篇:解释器模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 文章目录 状态模式定义英文定义直译如何理解呢&#xff1f; 状态模式的角色Context&#xff08;环境类&#xff09;State&#xff08;抽象状态类&#xff09;Concret…...

API低代码平台介绍5-数据库记录修改功能

数据库记录修改功能 在上篇文章中我们介绍了如何插入数据库记录&#xff0c;本篇文章会沿用上篇文章的测试数据&#xff0c;介绍如何使用ADI平台定义一个修改目标数据库记录的接口&#xff0c;包括 单主键单表修改、复合主键单表修改、多表修改&#xff08;整合前两者&#xff…...

git commit撤销修改

背景 如果提交了代码&#xff0c;却发现有不需要提交的文件。这时候如何修改呢&#xff1f;可以用git reset指令。 git reset用法解释 git reset 命令用于回退版本&#xff0c;可以指定退回某一次提交的版本。 git reset 命令语法格式如下&#xff1a; git reset [--soft …...

免费客户管理软件排行/北京网站优化经理

zimbra 登录端口In Zimbra server, how to set Zimbra web service’s hostname and port?在Zimbra 服务器中 &#xff0c;如何设置Zimbra Web服务的主机名和端口&#xff1f; Set Zimbra Web service’s host and port (to mail.domain.com:80 as an example) for a mail do…...

飞虎队网站建设/百度服务中心人工客服

实验一 求整数和、切pizza和Hanoi塔等问题的求解 一&#xff0c;实验描述 用C语言编程实现求整数和&#xff0c;切pizza以及Hanoi塔等问题的求解&#xff0c;在程序中加入clock ()来计算求解时间&#xff0c;使用不同的输入值得到对应的时间值。分析算法的时间复杂度并与测量…...

德州建设信息网站/今日国家新闻

概述 集成算法 既可以做分类也可以做回归 目的是将前一阶段没做好的东西&#xff0c;用后面的树将他们弥补上&#xff0c;使得整体表达效果更好。后续构造的树是用来找回上棵树的残差。怎样构造后续的树来弥补前一棵树的残差&#xff0c;使得整体的表达效果好呢&#xff1f; 我…...

长春做网站网站/2022年最火的关键词

几乎每天我们都能发现新的关于传授和推广HTML5的资源和文章,我们也在 HTML5 boilerplate 和HTML5 Reset (尽管他们已经超出了HTML5的范畴)给出了HTML5的模板。我们也有无数可以去选择的涵盖HTML5及相关技术的书籍。我们有书架、画廊和分析师去帮助我们处理HTML5的弊端。但是主要…...

做网站 提要求/人民日报官网

在SQL中判断一个表是否存在 <%sql"if exists (select * from sysobjects where id object_id(N[dbo].[phone]) and OBJECTPROPERTY(id, NIsUserTable) 1) drop table [dbo].[phone]" con.execute(sql) %> 如果表phone存在则删除phone表&#xf…...

wordpress禁用谷歌字体解决加载慢方法/网站优化seo培训

使用python时经常会利用pip 和 conda 进行包的下载和管理&#xff0c;但下载速度受限&#xff0c;出现下载失败现象。可以将config配置成国内镜像&#xff0c;这样可以提高下载速度。pip升级 pip 到最新的版本 (>10.0.0) 后进行配置&#xff1a;pip config set global.index…...