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

目前国内有哪些网站做家具回收wordpress怎么搭建

目前国内有哪些网站做家具回收,wordpress怎么搭建,网站 位置导航,海外音乐类网站做的比较好的视频链接 PDF链接 googleColab链接 GoogleColab是一个免费的jupyter notebook#xff0c;可以用上面的gpu资源进行训练 题目 通过前两天的数据#xff0c;预测第三天某个人感染新冠的概率 范例 导包 # Numerical Operations import math import numpy as np# Reading/Wr…视频链接 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# 分别为Numpypytorch和所有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 setvalid_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], generatortorch.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, dim0).numpy() return preds定义数据集类 # 数据集类处理和加载用于训练模型或者进行预测的数据 class COVID19Dataset(Dataset):x: Features.y: Targets, if none, do prediction.def __init__(self, x, yNone):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 models 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_allTrue):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(reductionmean) # 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(), lrconfig[learning_rate], momentum0.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, position0, leaveTrue)# 遍历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(fEpoch [{epoch1}/{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(fEpoch [{epoch1}/{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_ration_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.# ckptTensorFlow中用于存储模型参数的一种文件格式 }数据导入 # 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 days 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(ftrain_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(fnumber 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_sizeconfig[batch_size], shuffleTrue, pin_memoryTrue) valid_loader DataLoader(valid_dataset, batch_sizeconfig[batch_size], shuffleTrue, pin_memoryTrue) test_loader DataLoader(test_dataset, batch_sizeconfig[batch_size], shuffleFalse, pin_memoryTrue)开始训练 model My_Model(input_dimx_train.shape[1]).to(device) # put your model and data on the same computation device. trainer(train_loader, valid_loader, model, config, device)
http://www.ho-use.cn/article/10821724.html

相关文章:

  • 网站产品类别顺序如果修改哪些网站适合用自适应
  • 什么网站可以做报名系统公司网站文案推广怎么做
  • 沈阳网站外包公司东莞搜索引擎网站推广
  • 上海做网站天锐网站开发专业培训
  • 网站建设找什么工作室网站建设分享文章
  • 中文网站建设方案中文企业网站模板下载
  • 重庆建站程序星力游戏源码
  • 物流网站建设平台做放单主持的网站
  • 福建鞋子做淘宝图片网站眼镜网站源码
  • wordpress放音乐百度搜索关键词优化
  • 北京国贸网站建设公司大连网站排名公司
  • 如何建 网站问答系统网站模板
  • 地铁公司招聘信息网站wordpress搬家图片不显示
  • 做301到别人网站网站建设标准一
  • 百度如何推广网站上海自贸区注册公司
  • 知识付费网站搭建用哪个软件做网站
  • 表示商业网站的域名中小企业网络推广
  • 苏州商城网站制作企业管理app排行榜
  • 做电商哪几个设计网站比较好博客营销
  • 四川省建设厅网站首页顺德企业网站制作
  • 个人备案的网站涉及到资金如何编辑自己的网站
  • 长沙网站优化分析网页视频提取在线工具
  • 基层建设刊物网站西语网站域名
  • 河北沧州泊头做网站的电话五莲网站建设公司
  • 网站建设公司前台订餐网站设计
  • 廉江网站开发公司seo高级教程
  • 无锡外贸网站开发猎头自己在哪个网站做单
  • 做网站制作的公司成都微信微网站建设
  • 企业营销型网站建设团队网站推广员如何做
  • 2018年做返利网站谷德设计网入口