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

学校网站官网设计类专业要艺考吗

学校网站官网,设计类专业要艺考吗,英文网站正在建设页面,个人合法网站怎么做目录 固定的随机数种子 定义predict功能 拆分数据集 定义trainer 超参数设置 数据集载入 固定的随机数种子 在大量的机器学习与深度学习实验中#xff0c;如果不进行特殊设置#xff0c;我们的结果将不可复现#xff0c;固定的随机数种子将会解决这个问题 def same…目录 固定的随机数种子 定义predict功能 拆分数据集 定义trainer 超参数设置 数据集载入 固定的随机数种子 在大量的机器学习与深度学习实验中如果不进行特殊设置我们的结果将不可复现固定的随机数种子将会解决这个问题 def same_seed(seed): 设置随机种子(便于复现)torch.backends.cudnn.deterministic Truetorch.backends.cudnn.benchmark Falsenp.random.seed(seed)torch.manual_seed(seed)if torch.cuda.is_available():torch.cuda.manual_seed_all(seed)print(fSet Seed {seed}) 定义predict功能 在自己进行完整的训练框架搭建时对于结果的预测功能搭建需要分离被预测对象否则预测的对象的梯度会回传扰乱模型backbone def predict(test_loader, model, device):model.eval() # 设置成eval模式.preds []for x in tqdm(test_loader):x x.to(device) with torch.no_grad():pred model(x) preds.append(pred.detach().cpu()) #detach()从GPU分离tensor, cpu()将tensor从GPU转到CPUpreds torch.cat(preds, dim0).numpy() # 将预测结果拼接成一个numpy矩阵return preds 拆分数据集 对于原始数据集分类的拆分函数 def train_valid_split(data_set, valid_ratio, seed):数据集拆分成训练集training set和 验证集validation setvalid_set_size int(valid_ratio * len(data_set)) train_set_size len(data_set) - valid_set_sizetrain_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) 定义trainer def trainer(train_loader, valid_loader, model, config, device):criterion nn.MSELoss(reductionmean) # 损失函数的定义# 定义优化器optimizer torch.optim.SGD(model.parameters(), lrconfig[learning_rate], momentum0.9) # tensorboard 的记录器writer SummaryWriter()if not os.path.isdir(./models):# 创建文件夹-用于存储模型os.mkdir(./models)n_epochs, best_loss, step, early_stop_count config[n_epochs], math.inf, 0, 0for epoch in range(n_epochs):model.train() # 训练模式loss_record []# tqdm可以帮助我们显示训练的进度 train_pbar tqdm(train_loader, position0, leaveTrue)# 设置进度条的左边 显示第几个Epoch了train_pbar.set_description(fEpoch [{epoch1}/{n_epochs}])for x, y in train_pbar:optimizer.zero_grad() # 将梯度置0.x, y x.to(device), y.to(device) # 将数据一到相应的存储位置(CPU/GPU)pred model(x) loss criterion(pred, y)loss.backward() # 反向传播 计算梯度.optimizer.step() # 更新网络参数step 1loss_record.append(loss.detach().item())# 训练完一个batch的数据将loss 显示在进度条的右边train_pbar.set_postfix({loss: loss.detach().item()})mean_train_loss sum(loss_record)/len(loss_record)# 每个epoch,在tensorboard 中记录训练的损失后面可以展示出来writer.add_scalar(Loss/train, mean_train_loss, step)model.eval() # 将模型设置成 evaluation 模式.loss_record []for x, y in valid_loader:x, y x.to(device), y.to(device)with torch.no_grad():pred model(x)loss criterion(pred, y)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})# 每个epoch,在tensorboard 中记录验证的损失后面可以展示出来writer.add_scalar(Loss/valid, mean_valid_loss, step)if mean_valid_loss best_loss:best_loss mean_valid_losstorch.save(model.state_dict(), config[save_path]) # 模型保存print(Saving model with loss {:.3f}....format(best_loss))early_stop_count 0else: early_stop_count 1if 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, # 随机种子可以自己填写. :)select_all: True, # 是否选择全部的特征valid_ratio: 0.2, # 验证集大小(validation_size) 训练集大小(train_size) * 验证数据占比(valid_ratio)n_epochs: 3000, # 数据遍历训练次数 batch_size: 256, learning_rate: 1e-5, early_stop: 400, # 如果early_stop轮损失没有下降就停止训练. save_path: ./models/model.ckpt # 模型存储的位置 } 数据集载入 # 使用Pytorch中Dataloader类按照Batch将数据集加载 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) # 将模型和训练数据放在相同的存储位置(CPU/GPU) trainer(train_loader, valid_loader, model, config, device) 模型测试 def save_pred(preds, file): 将模型保存到指定位置with open(file, w) as fp:writer csv.writer(fp)writer.writerow([id, tested_positive])for i, p in enumerate(preds):writer.writerow([i, p])model My_Model(input_dimx_train.shape[1]).to(device) model.load_state_dict(torch.load(config[save_path])) preds predict(test_loader, model, device) save_pred(preds, pred.csv)
http://www.zqtcl.cn/news/418604/

相关文章:

  • 怎样将自己做的网站给别人看做平台网站一般有php还是js
  • 做企业网站一般要多少钱WordPress数据库搜索
  • wordpress建立好的网站app的开发流程是什么
  • 工作室网站WordPress文章图片采集插件
  • 青岛网站开发学校wordpress页面样板
  • 校级特色专业建设网站公司网站建设需要些什么要求
  • 嵌入式开发软件有哪些上海谷歌seo
  • 国际学校网站如何建设wordpress登入可见
  • 如何做好网站内链网站开发平台开发
  • 安徽省建设厅网站怎么进不去2022年国内重要新闻
  • 河北建设机械协会网站wordpress怎么做两个语言网站
  • 美容网站模版在线动画手机网站模板
  • jsp做的婚恋网站在谷歌上做英文网站
  • 北京教育学会网站建设昆明seo公司网站
  • 免费域名试用注册网站google搜索关键词热度
  • 温州建设小学网站高中资料网站免费
  • 室内设计网站官网大全电子商务网站后台核心管理
  • 网站建设报价图片欣赏福州网站建设报价
  • 网站推广基本方法是文创产品设计稿
  • 厦门网站制作公司推荐作文网投稿网站
  • 网站开发过什么软件杭州cms建站模板下载
  • 做中东服装有什么网站谁能给我个网址
  • 深圳网站建设公司服务平台河北省建设银行网站首页
  • 新密网站网页版微信小程序在哪
  • 长春建一个网站大概要多少钱微信公众号开店流程
  • 网站运营实例django 微信小程序开发教程
  • wordpress 搭网站郑州网站建设华久
  • 网站建设图片尺寸专门做音乐的网站
  • 株洲做网站外贸推广产品
  • 枫叶的网站建设博客企业网站样板制作