给个网站带颜色网站新闻对百度优化有用吗

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

给个网站带颜色,网站新闻对百度优化有用吗,用ps做网站是用像素还是毫米,wordpress大前端logo张量 运算与操作 加减乘除 pytorch中tensor运算逐元素进行#xff0c;或者一一对应计算 常用操作 典型维度为N X C X H X W#xff0c;N为图像张数#xff0c;C为图像通道数#xff0c;HW为图高宽。
sum() 一般#xff0c;指定维度#xff0c;且keepdimTrue该维度上元…张量 运算与操作 加减乘除 pytorch中tensor运算逐元素进行或者一一对应计算 常用操作 典型维度为N X C X H X WN为图像张数C为图像通道数HW为图高宽。
sum() 一般指定维度且keepdimTrue该维度上元素相加长度变为1。升降维度 unsqueeze() 扩充维度 image PIL.Image.open(lena.jpg).convert(RGB)transform torchvision.tranforms.Compose([torchvision.transforms.ToTensor()])img transform(image)img img.unsqueeze(0)sequeeze()将长度为1的维度抹除数据不会减少。 将输入图像转换为张量torchvision.transforms.ToTensor() class ToTensor:Convert a PIL Image or numpy.ndarray to tensor. This transform does not support torchscript.tensor转换为cvMat 获得元素反归一化变换通道顺序 维度展开 # 除第1维其他维展开x torch.flatten(x, 1)Variable view()方法 卷积输出N*C*H*W输入全连接层需要变形为N*size torchvision import torchvision as tv

查看网络的结构

features tv.models.alexnet().features

在dim1上求和第1维度压缩为1

torch.sum(in_feat**2,dim1,keepdimTrue)torch.nn Module 用于构建神经网络模型的基类有方法 register_bufferregister_parameter声明常量与模型参数。ModuleListtrain()与eval()ConvTranspose2d 图像反卷积可实现上采样如ConvTranspose2d(256, 128, 3, 2, 1, 1), 输入输出通道分别为256\128反卷积核大小为3反卷积的stride为2即图像大小变为2倍输出尺寸公式是卷积公式的逆运算与卷积参数一致形式即正逆。 H o u t ( H i n − 1 ) × stride [ 0 ] − 2 × padding [ 0 ] dilation [ 0 ] × ( kernel_size [ 0 ] − 1 ) outputpadding [ 0 ] 1 H{out} (H_{in} - 1) \times \text{stride}[0] - 2 \times \text{padding}[0] \text{dilation}[0] \times (\text{kernel_size}[0] - 1) \text{output_padding}[0] 1 Hout​(Hin​−1)×stride[0]−2×padding[0]dilation[0]×(kernel_size[0]−1)output_padding[0]1 模型参数 for key in list(para_task.keys()):para_task[key.replace(module., )] para_task.pop(key)数据集的输入与处理 对图像预处理https://pytorch.org/vision/stable/transforms.html transforms.Compose()设置图像预处理模式组合例如 train_transforms transforms.Compose(# [transforms.RandomCrop(args.patch_size), transforms.ToTensor()]# [transforms.ToTensor(),]# 图像中心裁剪边长为256像素[transforms.CenterCrop(256), transforms.ToTensor(),])from torchvision import datasets, transforms from torch.utils.data import DataLoader

含义为把PIL图像转换为tensor格式

train_dataset datasets.MNIST(rootdata/,trainTrue,transformtransforms.Compose([transforms.ToTensor(),]),downloadTrue) test_dataset datasets.MNIST(rootdata/,trainFalse,transformtransforms.Compose([transforms.ToTensor(),]),downloadTrue) train_loader DataLoader(datasettrain_dataset, batch_size100, shuffleTrue) test_loader DataLoader(datasettest_dataset, batch_size100, shuffleTrue)神经网络模型的构建与训练 import torch import torchvision from torch.autograd import Variable# 构建网络 class Model(torch.nn.Module):def init(self):super(Model, self).init()self.conv torch.nn.Sequential(torch.nn.Conv2d(1, 64, 3, 1, 1),torch.nn.ReLU(),torch.nn.Conv2d(64, 128, 3, 1, 1),torch.nn.ReLU(),torch.nn.MaxPool2d(2, 2),)self.dense torch.nn.Sequential(torch.nn.Linear(14 * 14 * 128, 1024),torch.nn.ReLU(),torch.nn.Dropout(p0.5),torch.nn.Linear(1024, 10),)def forward(self, x):x self.conv(x)x x.view(-1, 14 * 14 * 128)x self.dense(x)return x

device

device torch.device(cuda)

声明待训练的模型和优化方法

model Model().to(device) cost torch.nn.CrossEntropyLoss() optimizer torch.optim.Adam(model.parameters())

N epoch 训练

for epoch in range(epochs):sum_loss 0.0train_correct 0for data in train_loader:inputs, labels datainputs, labels Variable(inputs).cuda(), Variable(labels).cuda()optimizer.zero_grad()outputs model(inputs)loss cost(outputs, labels)loss.backward()optimizer.step()通过pytorch.nn.module、torchvision构建的网络模型是否训练 if requires_grad: #需要训练时设为真for para in torch.nn.module 对象.parameters():para.requires_grad Truetorch.nn.module的子类对象如下可添加网络层数 nn.layers nn.ModuleList()然后把网络模型参数作为训练的优化参数 class Trainer:def init(self):self.parameters list(net.parameters())self.lr 1e-3self.optimizer_net torch.optim.Adam(self.parameters,lr self.lr)池化

power-2 pool of square window of size3, stride2

nn.LPPool2d(2, 3, stride2)class L2pooling(nn.Module):def init(self, filter_size5, stride2, channelsNone, pad_off0):super(L2pooling, self).init()self.padding (filter_size - 2) // 2self.stride strideself.channels channelsa np.hanning(filter_size)[1:-1]g torch.Tensor(a[:, None] * a[None, :])g g / torch.sum(g)# pdb.set_trace()self.register_buffer(filter, g[None, None, :, :].repeat((self.channels, 1, 1, 1)))def forward(self, input):input input ** 2out F.conv2d(input,self.filter,strideself.stride,paddingself.padding,groupsinput.shape[1],)return (out 1e-12).sqrt()错误 分类标签有9类在构建数据集的标签时写为1~9运行时错误将标签-1解错。使用list错误pytorch无法构造tensor。 TypeError: Variable data has to be a tensor, but got list label np.zeros(10, dtypenp.float32)numpy中float是双精度pytorch变量均为单精度。pytorch transform必须放在Dataset对象且库为 torchvision.transforms.Compose([torchvision.transforms.ToTensor(), torchvision.transforms.RandomCrop((506, 606))])File “/home/zpk/CompressAI/iqa_models.py”, line 220, in forward dist_s (self.alpha0 * self.structure(mu0a, mu0b) RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! 程序参数 忘记加–cuda导致训练数据是在cpu上。 RuntimeError: grad can be implicitly created only for scalar outputs 模型输出取mean()。
COCO数据集训练 使用fiftyone库实现训练。 fiftyone下载数据集在/home//fiftyone fiftyone/coco-2017 ├── info.json ├── raw │ ├── captions_train2017.json │ ├── captions_val2017.json │ ├── instances_train2017.json │ ├── instances_val2017.json │ ├── person_keypoints_train2017.json │ └── person_keypoints_val2017.json ├── train │ ├── data - /home/zpk/Data/coco_real/train2017 │ └── labels.json └── validation├── data - /home/zpk/Data/coco_real/val2017└── labels.jsonimport fiftyone as fo import fiftyone.zoo as foz from fiftyone import ViewField as F class FiftyOneTorchDataset(torch.utils.data.Dataset):A class to construct a PyTorch dataset from a FiftyOne dataset.Args:fiftyone_dataset: a FiftyOne dataset or view that will be used for training or testingtransforms (None): a list of PyTorch transforms to apply to images and targets when loadinggt_field (ground_truth): the name of the field in fiftyone_dataset that contains the desired labels to loadclasses (None): a list of class strings that are used to define the mapping betweenclass names and indices. If None, it will use all classes present in the given fiftyone_dataset.def init(self,fiftyone_dataset,transformsNone,gt_fieldground_truth,classesNone,):self.samples fiftyone_datasetself.transforms transformsself.gt_field gt_fieldself.img_paths self.samples.values(filepath)self.classes classesif not self.classes:# Get list of distinct labels that exist in the viewself.classes self.samples.distinct(%s.detections.label % gt_field)if self.classes[0] ! background:self.classes [background] self.classesself.labels_map_rev {c: i for i, c in enumerate(self.classes)}def getitem(self, idx):img_path self.img_paths[idx]sample self.samples[img_path]metadata sample.metadataimg Image.open(img_path).convert(RGB)boxes []labels []area []iscrowd []detections sample[self.gt_field].detectionsfor det in detections:category_id self.labels_map_rev[det.label]coco_obj fouc.COCOObject.from_label(det, metadata, category_idcategory_id,)x, y, w, h coco_obj.bboxboxes.append([x, y, x w, y h])labels.append(coco_obj.category_id)area.append(coco_obj.area)iscrowd.append(coco_obj.iscrowd)target {}target[boxes] torch.as_tensor(boxes, dtypetorch.float32)target[labels] torch.as_tensor(labels, dtypetorch.int64)target[image_id] torch.as_tensor([idx])target[area] torch.as_tensor(area, dtypetorch.float32)target[iscrowd] torch.as_tensor(iscrowd, dtypetorch.int64)if self.transforms is not None:img, target self.transforms(img, target)return img, targetdef len(self):return len(self.img_paths)def get_classes(self):return self.classes fo_dataset foz.load_zoo_dataset(coco-2017, split train) dataset_dir /path/to/coco-2017

The type of the dataset being imported

dataset_type fo.types.COCODetectionDataset # for example dataset fo.Dataset.from_dir(dataset_dirdataset_dir,dataset_typedataset_type,namename, ) valid_view fo_dataset.match(F(ground_truth.detections).length() 1) torch_dataset FiftyOneTorchDataset(valid_view)