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

如果你会建网站淘宝怎么提高关键词搜索排名

如果你会建网站,淘宝怎么提高关键词搜索排名,电子商务网站硬件建设的核心是,网站title在哪里关于Checkpoints的内容在教程2里已经有了详细的说明,在本节,需要用它来利用模型进行预测 加载checkpoint并预测 使用模型进行预测的最简单方法是使用LightningModule中的load_from_checkpoint加载权重。 model LitModel.load_from_checkpoint("b…

关于Checkpoints的内容在教程2里已经有了详细的说明,在本节,需要用它来利用模型进行预测

加载checkpoint并预测

使用模型进行预测的最简单方法是使用LightningModule中的load_from_checkpoint加载权重。

model = LitModel.load_from_checkpoint("best_model.ckpt")
model.eval()
x = torch.randn(1, 64)with torch.no_grad():y_hat = model(x)

predict_step方法

加载检查点并进行预测仍然会在预测阶段的epoch留下许多boilerplate,LightningModule中的预测步骤删除了这个boilerplate 。

class MyModel(LightningModule):def predict_step(self, batch, batch_idx, dataloader_idx=0):return self(batch)

并将任何dataloader传递给Lightning Trainer

data_loader = DataLoader(...)
model = MyModel()
trainer = Trainer()
predictions = trainer.predict(model, data_loader)

预测逻辑

当需要向数据添加复杂的预处理或后处理时,使用predict_step方法。例如,这里我们使用Monte Carlo Dropout 进行预测

class LitMCdropoutModel(pl.LightningModule):def __init__(self, model, mc_iteration):super().__init__()self.model = modelself.dropout = nn.Dropout()self.mc_iteration = mc_iterationdef predict_step(self, batch, batch_idx):# enable Monte Carlo Dropoutself.dropout.train()# take average of `self.mc_iteration` iterationspred = [self.dropout(self.model(x)).unsqueeze(0) for _ in range(self.mc_iteration)]pred = torch.vstack(pred).mean(dim=0)return pred

启用分布式推理

通过使用Lightning中的predict_step,可以使用BasePredictionWriter进行分布式推理。

import torch
from lightning.pytorch.callbacks import BasePredictionWriterclass CustomWriter(BasePredictionWriter):def __init__(self, output_dir, write_interval):super().__init__(write_interval)self.output_dir = output_dirdef write_on_epoch_end(self, trainer, pl_module, predictions, batch_indices):# 在'output_dir'中创建N (num进程)个文件,每个文件都包含对其各自rank的预测torch.save(predictions, os.path.join(self.output_dir, f"predictions_{trainer.global_rank}.pt"))# 可以保存'batch_indices',以便从预测数据中获取有关数据索引的信息torch.save(batch_indices, os.path.join(self.output_dir, f"batch_indices_{trainer.global_rank}.pt"))# 可以设置writer_interval="batch"
pred_writer = CustomWriter(output_dir="pred_path", write_interval="epoch")
trainer = Trainer(accelerator="gpu", strategy="ddp", devices=8, callbacks=[pred_writer])
model = BoringModel()
trainer.predict(model, return_predictions=False)

也可以加载保存的checkpoint,把它当作一个普通的torch.nn.Module来使用。可以提取所有的torch.nn.Module,并在训练后使用LightningModule保存的checkpoint加载权重。建议从LightningModule的init和forward方法中复制明确的实现。

class Encoder(nn.Module):...class Decoder(nn.Module):...class AutoEncoderProd(nn.Module):def __init__(self):super().__init__()self.encoder = Encoder()self.decoder = Decoder()def forward(self, x):return self.encoder(x)class AutoEncoderSystem(LightningModule):def __init__(self):super().__init__()self.auto_encoder = AutoEncoderProd()def forward(self, x):return self.auto_encoder.encoder(x)def training_step(self, batch, batch_idx):x, y = batchy_hat = self.auto_encoder.encoder(x)y_hat = self.auto_encoder.decoder(y_hat)loss = ...return loss# 训练
trainer = Trainer(devices=2, accelerator="gpu", strategy="ddp")
model = AutoEncoderSystem()
trainer.fit(model, train_dataloader, val_dataloader)
trainer.save_checkpoint("best_model.ckpt")# 创建PyTorch模型并加载checkpoint权重
model = AutoEncoderProd()
checkpoint = torch.load("best_model.ckpt")
hyper_parameters = checkpoint["hyper_parameters"]# 恢复超参数
model = AutoEncoderProd(**hyper_parameters)model_weights = checkpoint["state_dict"]# 通过 dropping `auto_encoder.` 更新key值
for key in list(model_weights):model_weights[key.replace("auto_encoder.", "")] = model_weights.pop(key)model.load_state_dict(model_weights)
model.eval()
x = torch.randn(1, 64)with torch.no_grad():y_hat = model(x)
http://www.yayakq.cn/news/426376/

相关文章:

  • 网站开发需要注意什么网站优化年报告
  • 全椒做网站家做网站
  • 网站反链有好处吗注册公司核名
  • 石家庄市网站建设傻瓜式大型网站开发工具
  • 简述网站开发建设的基本流程自己 做网站
  • 企业网站建设要注意什么找人做一个网站需要多少钱
  • 怎么在各个网站免费推广信息搞笑网站源码
  • 昌乐建设局网站最早动画是如何做的视频网站
  • 多元网站无锡网站设计哪家公司好
  • 坪地网站建设价格昆明seo网站
  • 专业北京网站建设西安免费做网站公司
  • 固阳网站建设企业服务咨询
  • mysql网站后台管理系统下载荆门刚刚发布的
  • 建设进出口外贸网站企业网站后台管理
  • 校园网站建设的需求分析微站小程序
  • 云畅网站建设后台开题报告电子商务网站建设
  • asp网站程序下载咸宁做网站
  • seo与网站建设的关联写作网站哪个好
  • 酒店机票最便宜的网站建设网站开发行业发展前景
  • 广州营销型网站上海奉贤 网站建设
  • 建设一个门户网站需要多久wordpress的开发框架
  • 中文网站 可以做谷歌推广吗给网站做图
  • 网站被k申述个人微博网页制作代码教程
  • 创建网站制作首页服务器上配置网站
  • 网站建设的相关问题asp.net 个人网站
  • 怎么在广西建设厅网站注销c证建设部二级结构工程师注销网站
  • 网站建设教程培训两学一做专题网站介绍
  • 做网站是用什么语言做成的网站开发设计制作推广
  • 企业网站都是静态的吗socks5免费代理地址
  • 宁波网站开发建设义乌网站建设公司哪家好