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

网站建设流程步骤国内哪个搜索引擎最好用

网站建设流程步骤,国内哪个搜索引擎最好用,做网站用盗版PS,东营免费建网站作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 一、配置文件 (config.py) import torchclass Config:# 数据集配置DATASET_PATH "/path/to/kaggle/dataset"IMAGE_SIZE 224BATC…

作业:

kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化

进阶:并拆分成多个文件

一、配置文件 (config.py)

import torchclass Config:# 数据集配置DATASET_PATH = "/path/to/kaggle/dataset"IMAGE_SIZE = 224BATCH_SIZE = 32# 模型配置NUM_CLASSES = 10PRETRAINED = True# 训练配置EPOCHS = 10LR = 0.001DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

二、数据加载 (dataset.py)

from torchvision import transforms, datasets
from config import Configdef get_dataloaders():train_transform = transforms.Compose([transforms.Resize((Config.IMAGE_SIZE, Config.IMAGE_SIZE)),transforms.RandomHorizontalFlip(),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])test_transform = transforms.Compose([transforms.Resize((Config.IMAGE_SIZE, Config.IMAGE_SIZE)),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])train_set = datasets.ImageFolder(f"{Config.DATASET_PATH}/train",transform=train_transform)test_set = datasets.ImageFolder(f"{Config.DATASET_PATH}/test",transform=test_transform)return train_set, test_set

三、CNN模型定义 (model.py)

import torch.nn as nn
from torchvision import models
from config import Configclass CNNModel(nn.Module):def __init__(self):super().__init__()base_model = models.resnet18(pretrained=Config.PRETRAINED)num_features = base_model.fc.in_featuresbase_model.fc = nn.Linear(num_features, Config.NUM_CLASSES)self.model = base_modeldef forward(self, x):return self.model(x)def get_feature_maps(self):return self.model.layer4[-1].conv2

四、训练脚本 (train.py)

import torch
from torch.utils.data import DataLoader
from dataset import get_dataloaders
from model import CNNModel
from config import Config
from utils import save_checkpointdef train():train_set, test_set = get_dataloaders()train_loader = DataLoader(train_set, batch_size=Config.BATCH_SIZE, shuffle=True)test_loader = DataLoader(test_set, batch_size=Config.BATCH_SIZE)model = CNNModel().to(Config.DEVICE)criterion = nn.CrossEntropyLoss()optimizer = torch.optim.Adam(model.parameters(), lr=Config.LR)for epoch in range(Config.EPOCHS):model.train()for inputs, labels in train_loader:inputs, labels = inputs.to(Config.DEVICE), labels.to(Config.DEVICE)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()# 验证代码...save_checkpoint(model, epoch)if __name__ == "__main__":train()

五、Grad-CAM实现 (gradcam.py)

import torch
import numpy as np
import cv2
import matplotlib.pyplot as pltclass GradCAM:def __init__(self, model, target_layer):self.model = modelself.gradients = Noneself.activations = Nonetarget_layer.register_forward_hook(self.save_activations)target_layer.register_backward_hook(self.save_gradients)def save_activations(self, module, input, output):self.activations = output.detach()def save_gradients(self, module, grad_input, grad_output):self.gradients = grad_output[0].detach()def __call__(self, x, class_idx=None):# 前向传播output = self.model(x)if class_idx is None:class_idx = torch.argmax(output, dim=1)# 反向传播self.model.zero_grad()one_hot = torch.zeros_like(output)one_hot[0][class_idx] = 1output.backward(gradient=one_hot)# 计算权重weights = torch.mean(self.gradients, dim=(2, 3), keepdim=True)cam = torch.sum(self.activations * weights, dim=1)cam = torch.relu(cam)# 后处理cam = cam.squeeze().cpu().numpy()cam = cv2.resize(cam, (x.shape[3], x.shape[2]))cam = (cam - np.min(cam)) / (np.max(cam) - np.min(cam))return camdef visualize_gradcam(model, image_tensor, original_image):target_layer = model.get_feature_maps()gradcam = GradCAM(model, target_layer)cam = gradcam(image_tensor.unsqueeze(0).to(Config.DEVICE))heatmap = cv2.applyColorMap(np.uint8(255 * cam), cv2.COLORMAP_JET)heatmap = np.float32(heatmap) / 255superimposed_img = heatmap + np.float32(original_image)superimposed_img = superimposed_img / np.max(superimposed_img)plt.imshow(superimposed_img)plt.axis('off')plt.show()

六、工具函数 (utils.py)

import torch
import osdef save_checkpoint(model, epoch, path="checkpoints"):if not os.path.exists(path):os.makedirs(path)torch.save({'epoch': epoch,'model_state_dict': model.state_dict(),}, f"{path}/checkpoint_{epoch}.pth")def load_checkpoint(model, path):checkpoint = torch.load(path)model.load_state_dict(checkpoint['model_state_dict'])return model

http://www.dtcms.com/wzjs/56943.html

相关文章:

  • 一个网站如何做推广推广方案
  • 济南经三路专业做网站培训公司
  • 中山金舜家庭用品有限公司怎样网站地图微信引流推广
  • dede免费网站模板windows11优化大师
  • 电脑上做免费网站教程百度系优化
  • 网站文字链接企业营销模式
  • asp网站设计代做推广公司品牌
  • 怎么做网站小编微博关键词排名优化
  • 网站建设需求量如何推广一个平台
  • 温州做网站掌熊号友妙招链接怎么弄
  • 顺义区网站建设西安百度关键词包年
  • 石家庄移动端网站建设广东网站seo
  • 如何建购物网站网络宣传方式有哪些
  • 成都网站建设 小兵cmsnba最新交易一览表
  • 鄞州做网站搜索竞价排名
  • 菏泽做网站的公司万网注册域名查询
  • wordpress实现轮播图搜索引擎优化的名词解释
  • 潮州有没有做网站的人网络培训seo
  • 厦门 经营性网站备案企业seo整站优化方案
  • seo网站建设课程最新国际新闻头条新闻
  • 潍坊住房与城市建设部网站推广工作的流程及内容
  • 本地用织梦做网站怎么开发自己的小程序
  • 武汉网站关键词排名seo免费优化网站
  • 免费公司网站主页模板最近中国新闻热点大事件
  • 免费网站空间 - 百度网站推广的100种方法
  • 西安哪些做网站的公司好杭州产品推广服务公司
  • 织梦网站默认密码忘记手机网站排名优化软件
  • 企业建立网站需要提供什么上海seo培训中心
  • 简单小网站百度网页游戏
  • 单招网是哪个网站制作公司做的百度一下你知道主页官网