From 2f28344b34513a7170317541a0b36d5e63f0c0ed Mon Sep 17 00:00:00 2001 From: zhanghui1 Date: Sun, 19 Mar 2023 16:06:14 +0000 Subject: [PATCH] update --- diffusion.py | 147 +++++++++++++++++++++++------------------ sample_96_pict_1.8.png | Bin 36522 -> 2276 bytes verification_sample.py | 12 ++-- z.jpg | Bin 0 -> 23604 bytes 4 files changed, 92 insertions(+), 67 deletions(-) create mode 100644 z.jpg diff --git a/diffusion.py b/diffusion.py index 3830a92..032a441 100644 --- a/diffusion.py +++ b/diffusion.py @@ -5,15 +5,16 @@ def to_numpy(tensor): return tensor.detach().cpu().numpy() if tensor.requires_grad else tensor.cpu().numpy() -def compare_diff(a,b,decimal): +def compare_diff_betw_a_b(a,b,decimal): import numpy as np return np.testing.assert_almost_equal(to_numpy(a),to_numpy(b), decimal=decimal) class GaussianDiffusion(nn.Module): - def __init__(self, dtype, model, classifier,betas, w, v, device): + def __init__(self, dtype, model, classifier,cemblayer,betas, w, v, device): super().__init__() self.dtype = dtype self.model = model.to(device) self.classifier=classifier + self.cemblayer=cemblayer self.model.dtype = self.dtype self.betas = torch.tensor(betas,dtype=self.dtype).to(device) self.w = w @@ -184,59 +185,55 @@ def p_sample(self, x_t, t,return_all=True, **model_kwargs): ######## ######## ######## ########增加classifier的处理方法 ######## ######## ######## ######## ######## - def p_mean_variance_with_classifier(self, x_t, t, **model_kwargs): - """ - calculate the parameters of p_{theta}(x_{t-1}|x_t) - """ - if model_kwargs == None: - model_kwargs = {} - B, C = x_t.shape[:2] - assert t.shape == (B,) - - # cemb_shape = model_kwargs['cemb'].shape - # pred_eps_cond = self.model(x_t, t, **model_kwargs) - # model_kwargs['cemb'] = torch.zeros(cemb_shape, device = self.device) - # pred_eps_uncond = self.model(x_t, t, **model_kwargs) - # pred_eps = (1 + self.w) * pred_eps_cond - self.w * pred_eps_uncond - pred_eps=self.model(x_t,t,**model_kwargs) + def calc_diff(self,x_t,t,use_classifier=True,use_sofrmax=True): + #assert x_t.size(0)==1 + conditions=torch.arange(0,10,1).to('cuda') + if use_classifier: + logits=self.classifier(x_t,t) + if use_sofrmax: + #scores = F.log_softmax(logits, dim=-1) + scores = F.softmax(logits, dim=-1)[0] + else: + scores=logits + else: + scores=torch.ones_like(conditions)*0.1 - assert torch.isnan(x_t).int().sum() == 0, f"nan in tensor x_t when t = {t[0]}" - assert torch.isnan(t).int().sum() == 0, f"nan in tensor t when t = {t[0]}" - assert torch.isnan(pred_eps).int().sum() == 0, f"nan in tensor pred_eps when t = {t[0]}" - p_mean = self._predict_xt_prev_mean_from_eps(x_t, t.type(dtype=torch.long), pred_eps) - p_var = self._extract(self.vars, t.type(dtype=torch.long), x_t.shape) - return p_mean, p_var - - def p_mean_variance_for_compare(self, x_t, t,**model_kwargs): + pred_eps=scores[0]*self.model(x_t,t,self.cemblayer(conditions[0].repeat(x_t.size(0)))) + for i,label in enumerate(conditions[1:]): + c=self.cemblayer(label.repeat(x_t.size(0))) + pred_eps+=scores[i]*self.model(x_t,t,c) + cemb=torch.zeros(size=(x_t.size(0),10), device = self.device) + pred_eps_unc= self.model(x_t, t,cemb) + return pred_eps,pred_eps_unc + def p_mean_variance_for_compare(self, x_t, t,compare=False,**model_kwargs): """ calculate the parameters of p_{theta}(x_{t-1}|x_t) - - - 修改为输入y=None,模型输出的epsilon为 res=e(x_t,t,None) """ if model_kwargs == None: model_kwargs = {} B, C = x_t.shape[:2] assert t.shape == (B,) - #cemb_shape = model_kwargs['cemb'].shape - #pred_eps_cond = self.model(x_t, t, **model_kwargs) - # cemb_shape=torch.zeros(size=(x_t.size(0),10)) - model_kwargs['cemb'] = torch.zeros(size=(x_t.size(0),10), device = self.device) - pred_eps_uncond = self.model(x_t, t, **model_kwargs) - pred_eps=pred_eps_uncond - #pred_eps = (1 + self.w) * pred_eps_cond - self.w * pred_eps_uncond + if not compare: + cemb_shape = model_kwargs['cemb'].shape + pred_eps_cond = self.model(x_t, t, **model_kwargs) - assert torch.isnan(x_t).int().sum() == 0, f"nan in tensor x_t when t = {t[0]}" - assert torch.isnan(t).int().sum() == 0, f"nan in tensor t when t = {t[0]}" - assert torch.isnan(pred_eps).int().sum() == 0, f"nan in tensor pred_eps when t = {t[0]}" - p_mean = self._predict_xt_prev_mean_from_eps(x_t, t.type(dtype=torch.long), pred_eps) - p_var = self._extract(self.vars, t.type(dtype=torch.long), x_t.shape) + model_kwargs['cemb'] = torch.zeros(cemb_shape, device = self.device) + pred_eps_uncond = self.model(x_t, t, **model_kwargs) + pred_eps = (1 + self.w) * pred_eps_cond - self.w * pred_eps_uncond + + assert torch.isnan(x_t).int().sum() == 0, f"nan in tensor x_t when t = {t[0]}" + assert torch.isnan(t).int().sum() == 0, f"nan in tensor t when t = {t[0]}" + assert torch.isnan(pred_eps).int().sum() == 0, f"nan in tensor pred_eps when t = {t[0]}" + p_mean = self._predict_xt_prev_mean_from_eps(x_t, t.type(dtype=torch.long), pred_eps) + p_var = self._extract(self.vars, t.type(dtype=torch.long), x_t.shape) + # else: + return p_mean, p_var + def p_sample_for_compare(self,x_t, t,return_all=True,**model_kwargs): """ sample x_{t-1} from p_{theta}(x_{t-1}|x_t) """ - B, C = x_t.shape[:2] assert t.shape == (B,), f"size of t is not batch size {B}" mean, var = self.p_mean_variance_for_compare(x_t , t) @@ -266,44 +263,68 @@ def condition_mean(self, p_mean,p_var, x, t,sum_type='prob',classifier_scale=1.0 gradient = self.cond_fn(self.classifier,x, t, classifier_scale=classifier_scale,y=y_list[0]) for y_i in y_list[1:]: gradient += self.cond_fn(self.classifier,x, t, classifier_scale=classifier_scale,y=y_i) - new_mean = ( p_mean.float() + p_var * gradient.float() ) return new_mean - def compare_cond_uncond_diff(self,shape,compare_t,**model_kwargs):#主函数 sample + # def compare_cond_uncond_diff(self,shape,compare_t,**model_kwargs):#主函数 sample + # print('Start generating...') + # if model_kwargs == None: + # model_kwargs = {} + # x_t = torch.randn(shape, device = self.device) + # tlist = torch.ones([x_t.shape[0]], device = self.device) * self.T + # for _ in tqdm(range(self.T),dynamic_ncols=True): + # tlist -= 1 + # if not isinstance(compare_t,list): + # compare_t=[compare_t] + # if tlist[0] in compare_t: + # #计算新的mean,并对齐进行累加 + # with torch.no_grad(): + # #x_t_with_cond=self.p_sample_for_compare(x_t, tlist,**model_kwargs) + # noise = torch.randn_like(x_t) + # noise[tlist[0] <= 0] = 0 + # mean_cond,var_mean=self.p_sample_for_compare(x_t, tlist,return_all=False,**model_kwargs) + # mean_uc,var_uc=self.p_sample(x_t, tlist,return_all=False,**model_kwargs) + + # x_t_with_cond=mean_cond+torch.sqrt(var_mean) * noise + # x_t_no_cond=mean_uc+torch.sqrt(var_uc) * noise + # try: + # res=compare_diff(x_t_no_cond,x_t_with_cond,decimal=4) + # print(res) + # except Exception as e: + # print(e) + # x_t=x_t_no_cond + # else: + # with torch.no_grad(): + # x_t = self.p_sample(x_t, tlist,**model_kwargs) #没有classifier的处理 + + # x_t = torch.clamp(x_t, -1, 1) + # print('ending sampling process...') + # return x_t + def compare_cond_uncond_diff(self,shape,compare_t,clear_compare_results=False,**model_kwargs):#主函数 sample print('Start generating...') + logger_list=[] if model_kwargs == None: model_kwargs = {} x_t = torch.randn(shape, device = self.device) tlist = torch.ones([x_t.shape[0]], device = self.device) * self.T for _ in tqdm(range(self.T),dynamic_ncols=True): tlist -= 1 - if not isinstance(compare_t,list): compare_t=[compare_t] if tlist[0] in compare_t: - #计算新的mean,并对齐进行累加 - with torch.no_grad(): - #x_t_with_cond=self.p_sample_for_compare(x_t, tlist,**model_kwargs) - noise = torch.randn_like(x_t) - noise[tlist[0] <= 0] = 0 - mean_cond,var_mean=self.p_sample_for_compare(x_t, tlist,return_all=False,**model_kwargs) - mean_uc,var_uc=self.p_sample(x_t, tlist,return_all=False,**model_kwargs) - - x_t_with_cond=mean_cond+torch.sqrt(var_mean) * noise - x_t_no_cond=mean_uc+torch.sqrt(var_uc) * noise + sum_eps_condition,eps_uncond=self.calc_diff(x_t,tlist) + logger_list.append(abs(sum_eps_condition.cpu().numpy()-eps_uncond.cpu().numpy()).mean()) + if clear_compare_results: try: - res=compare_diff(x_t_no_cond,x_t_with_cond,decimal=4) - print(res) - except Exception as e: + res=compare_diff_betw_a_b(sum_eps_condition,eps_uncond,decimal=3) + print('diff in time step :{} :\n {}'.format(tlist,res)) + except Exception as e: print(e) - x_t=x_t_no_cond - - else: - with torch.no_grad(): - x_t = self.p_sample(x_t, tlist,**model_kwargs) #没有classifier的处理 + + #直接多调用一次了。。 + x_t = self.p_sample(x_t, tlist,**model_kwargs) #没有classifier的处理 x_t = torch.clamp(x_t, -1, 1) print('ending sampling process...') - return x_t \ No newline at end of file + return x_t,logger_list \ No newline at end of file diff --git a/sample_96_pict_1.8.png b/sample_96_pict_1.8.png index 59ba8b0cee2becf16c73a53a5d100ba374fa200d..7b7d79abf8afc0a466c0443460ad77261b7ea522 100644 GIT binary patch literal 2276 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