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

三水容桂网站制作武汉网站排名提升

三水容桂网站制作,武汉网站排名提升,金藏源电商网站建设哪家好,郑州动力无限网站建设我在上篇博客深入浅出 diffusion(1):白话 diffusion 原理(无公式)中介绍了 diffusion 的一些基本原理,其中谈到了 diffusion 的加噪过程,本文用pytorch 实现下到底是怎么加噪的。 import torch…

         我在上篇博客深入浅出 diffusion(1):白话 diffusion 原理(无公式)中介绍了 diffusion 的一些基本原理,其中谈到了 diffusion 的加噪过程,本文用pytorch 实现下到底是怎么加噪的。

import torch
import math
import numpy as np
from PIL import Image
import requests
import matplotlib.pyplot as plot
import cv2def linear_beta_schedule(timesteps):"""linear schedule, proposed in original ddpm paper"""scale = 1000 / timestepsbeta_start = scale * 0.0001beta_end = scale * 0.02return torch.linspace(beta_start, beta_end, timesteps, dtype = torch.float64)def cosine_beta_schedule(timesteps, s = 0.008):"""cosine scheduleas proposed in https://openreview.net/forum?id=-NEXDKk8gZ"""steps = timesteps + 1t = torch.linspace(0, timesteps, steps, dtype = torch.float64) / timestepsalphas_cumprod = torch.cos((t + s) / (1 + s) * math.pi * 0.5) ** 2alphas_cumprod = alphas_cumprod / alphas_cumprod[0]betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1])return torch.clip(betas, 0, 0.999)# 时间步(timestep)定义为1000
timesteps = 1000# 定义Beta Schedule, 选择线性版本,同DDPM原文一致,当然也可以换成cosine_beta_schedule
betas = linear_beta_schedule(timesteps=timesteps)# 根据beta定义alpha 
alphas = 1. - betas
alphas_cumprod = torch.cumprod(alphas, axis=0)
sqrt_recip_alphas = torch.sqrt(1.0 / alphas)# 计算前向过程 diffusion q(x_t | x_{t-1}) 中所需的
sqrt_alphas_cumprod = torch.sqrt(alphas_cumprod)
sqrt_one_minus_alphas_cumprod = torch.sqrt(1. - alphas_cumprod)def extract(a, t, x_shape):batch_size = t.shape[0]out = a.gather(-1, t.cpu())return out.reshape(batch_size, *((1,) * (len(x_shape) - 1))).to(t.device)# 前向加噪过程: forward diffusion process
def q_sample(x_start, t, noise=None):if noise is None:noise = torch.randn_like(x_start)cv2.imwrite('noise.png', noise.numpy()*255)sqrt_alphas_cumprod_t = extract(sqrt_alphas_cumprod, t, x_start.shape)sqrt_one_minus_alphas_cumprod_t = extract(sqrt_one_minus_alphas_cumprod, t, x_start.shape)print('sqrt_alphas_cumprod_t :', sqrt_alphas_cumprod_t)print('sqrt_one_minus_alphas_cumprod_t :', sqrt_one_minus_alphas_cumprod_t)return sqrt_alphas_cumprod_t * x_start + sqrt_one_minus_alphas_cumprod_t * noise# 图像后处理
def get_noisy_image(x_start, t):# add noisex_noisy = q_sample(x_start, t=t)# turn back into PIL imagenoisy_image = x_noisy.squeeze().numpy()return noisy_image...# 展示图像, t=0, 50, 100, 500的效果
x_start = cv2.imread('img.png') / 255.0
x_start = torch.tensor(x_start, dtype=torch.float)
cv2.imwrite('img_0.png', get_noisy_image(x_start, torch.tensor([0])) * 255.0)
cv2.imwrite('img_50.png', get_noisy_image(x_start, torch.tensor([50])) * 255.0)
cv2.imwrite('img_100.png', get_noisy_image(x_start, torch.tensor([100])) * 255.0)
cv2.imwrite('img_500.png', get_noisy_image(x_start, torch.tensor([500])) * 255.0)
cv2.imwrite('img_999.png', get_noisy_image(x_start, torch.tensor([999])) * 255.0)sqrt_alphas_cumprod_t : tensor([[[0.9999]]], dtype=torch.float64)
sqrt_one_minus_alphas_cumprod_t : tensor([[[0.0100]]], dtype=torch.float64)
sqrt_alphas_cumprod_t : tensor([[[0.9849]]], dtype=torch.float64)
sqrt_one_minus_alphas_cumprod_t : tensor([[[0.1733]]], dtype=torch.float64)
sqrt_alphas_cumprod_t : tensor([[[0.9461]]], dtype=torch.float64)
sqrt_one_minus_alphas_cumprod_t : tensor([[[0.3238]]], dtype=torch.float64)
sqrt_alphas_cumprod_t : tensor([[[0.2789]]], dtype=torch.float64)
sqrt_one_minus_alphas_cumprod_t : tensor([[[0.9603]]], dtype=torch.float64)
sqrt_alphas_cumprod_t : tensor([[[0.0064]]], dtype=torch.float64)
sqrt_one_minus_alphas_cumprod_t : tensor([[[1.0000]]], dtype=torch.float64)

        以下分别为原图,t = 0, 50, 100, 500, 999 的结果。

        可见,随着 t 的加大,原图对应的比例系数减小,噪声的强度系数加大,t = 500的时候,隐约可见人脸轮廓,t = 999 的时候,人脸彻底淹没在噪声里面了。

http://www.tj-hxxt.cn/news/69399.html

相关文章:

  • 网站开发指什么网站推广在哪好
  • 怎么做企业营销型网站免费推广渠道有哪些
  • 国外开源 企业网站网站开发报价方案
  • seo sem 外贸建站 网站建设 文化墙设计厦门seo全网营销
  • 火车头采集wordpress发布莆田百度快照优化
  • 成都网站建设公司排行网站关键词优化多少钱
  • 免费网站建站手机网络推广的优势
  • 网站建设公司的做网站推广
  • 鹤山做网站软文营销经典案例
  • 怎么样做搜索引擎网站网站seo优化推广外包
  • 中国移动官方网站登录入口软件开发需要多少资金
  • 网站验证码怎么做外链工厂 外链
  • 加盟做地方门户网站推广竞价
  • 网站建设综合技术如何查询网站收录情况
  • 附近的网站设计开发全媒体广告代理
  • 网站首页布局seo百度招聘官网首页
  • 怎么用PHP做网站留言板apple日本网站
  • app开发定制公司哪家好深圳网站搜索优化
  • 深圳品牌包装设计公司兰州seo技术优化排名公司
  • 广东省公路建设有限公司网站北京seoqq群
  • 大型建设网站制作如何优化网页
  • 电子商务网站开发费用调研报告抖音seo关键词优化
  • 说明网站建设与网站运营的区别百度一键安装
  • 创新的网站建站今日新闻国际头条新闻
  • 学校建设外文网站情况营销案例100例简短
  • 网站建设 宁夏怎样做一个自己的网站
  • 祥云网站优化世界球队最新排名榜
  • 做网站怎么赚钱 111推广策划方案范文
  • 太原市给企业做网站自己动手建立个人网站
  • 自己弄公司网站西安网站建设推广优化