博客
关于我
6. 自己写的sigmoid、BN、求和和分割等函数
阅读量:798 次
发布时间:2023-04-03

本文共 1372 字,大约阅读时间需要 4 分钟。

sigmoid 函数处理图片的结果

通过实验验证,发现 torch.nn.functional.sigmoid 函数对图片的处理结果与原始图片相似,表明该函数对图片的处理并未显著改变其特征。以下是实验代码及结果分析:

import numpy as np
import torch
from torch import nn
import cv2
import matplotlib.pyplot as plt
class SiLU(nn.Module):
@staticmethod
def forward(x):
return x * torch.sigmoid(x)
if __name__ == "__main__":
# 1. 读取图片
img2 = cv2.imread("img/2.jpg")
images = img2.reshape(1, 3, img2.shape[0], img2.shape[1])
data = torch.tensor(images)
datas = torch.tensor(images, dtype=torch.float32)
# 2. 应用sigmoid激活函数
sigmoids = SiLU()
datas = sigmoids(datas)
# 3. 处理结果并保存
datas = datas.detach().numpy()
result = datas.reshape(img2.shape[0], img2.shape[1], 3)
result = (result - result.min()) * (255 / result.max())
cv2.imwrite("ss.jpg", result.astype("uint8"))
cv2.imshow("ss", result.astype("uint8"))
cv2.waitKey(0)

BatchNorm 对图片的标准化处理

BatchNorm 层用于对输入数据进行标准化处理,通常用于加速训练并稳定网络性能。以下是实现 BatchNorm 标准化的代码及效果展示:

import numpy as np
import torch
from torch import nn
import cv2
import matplotlib.pyplot as plt
def Norm(datas):
v = 0.000001
for item in datas:
means = item.mean() # 计算均值
vars = item.var() # 计算方差
x = (item - means) / (torch.sqrt(vars + v)) # 应用标准化
x = x.reshape(item.shape)
return x

实验结果表明,BatchNorm 标准化对图片的处理效果较好,能够使图像颜色更加均匀,同时保持图片的原始信息。

转载地址:http://szrfk.baihongyu.com/

你可能感兴趣的文章
Oracle函数与存储过程和程序包
查看>>
Oracle分析函数之LEAD和LAG
查看>>
Oracle分组取前n条记录
查看>>
Oracle创建database link(dblink)和同义词(synonym)
查看>>
oracle创建数据库的步骤
查看>>
Oracle创建用户、角色、授权、建表
查看>>
Oracle创建用户与授予表空间与权限
查看>>
oracle创建表(并且实现ID自增)
查看>>
oracle删除重复数据保留第一条记录
查看>>
oracle判断空值的函数nvl2,【PL/SQL】 NVL,NVL2,COALESCE 三种空值判断函数
查看>>
Oracle发布VirtualBox 7.1稳定版!支持ARM、优化了UI、支持Wayland等
查看>>
oracle启动三步
查看>>
oracle启动关闭服务,启动关闭oracle服务.bat
查看>>
Oracle命令行创建数据库
查看>>
Oracle和SQL server的数据类型比较
查看>>
oracle和sybase的一些区别
查看>>
oracle在日本遇到的技术问题
查看>>
Oracle在线重定义
查看>>
oracle基础 管理索引
查看>>
oracle复习(一)
查看>>