news 2026/4/26 2:08:49

中间层省略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
中间层省略

基于条件生成对抗网络的风光联合场景生成 处理风光不确定性 复现《基于深度卷积生成对抗网络场景生成的间歇式分布式电源优化配置》中的场景生成方法 通过改进的条件深度卷积生成对抗网络模型对 DG 出力的不确定性进行建模,并在模型中加入月份标签信息以生成面向规划的风光联合出力场景 我在该文所使用 条件DCGAN方法 的基础上进行了改进,采用 基于条件WGAN-GP方法,收敛速度和精度都更优!独一无二! 语言:Python 采用PyTorch框架

江湖上最近流行用生成对抗网络搞新能源场景生成,今天咱们来扒一扒这个基于条件WGAN-GP的改进方案。先说痛点,风光出力那随机性简直让人头秃,传统概率模型根本hold不住那些复杂的时空关联。去年看到有人用条件DCGAN搞这个,效果还行但训练总翻车,于是我们团队把WGAN-GP的绝活给缝进去了。

基于条件生成对抗网络的风光联合场景生成 处理风光不确定性 复现《基于深度卷积生成对抗网络场景生成的间歇式分布式电源优化配置》中的场景生成方法 通过改进的条件深度卷积生成对抗网络模型对 DG 出力的不确定性进行建模,并在模型中加入月份标签信息以生成面向规划的风光联合出力场景 我在该文所使用 条件DCGAN方法 的基础上进行了改进,采用 基于条件WGAN-GP方法,收敛速度和精度都更优!独一无二! 语言:Python 采用PyTorch框架

先看数据怎么喂给模型。我们给每个样本绑了月份标签,这个trick能让生成器明白季节特性。PyTorch里搞数据加载得这么玩:

class ScenarioDataset(Dataset): def __init__(self, data_path, label_path): self.power_data = torch.load(data_path) # [N, 2, 24]风光联合数据 self.month_labels = torch.load(label_path) # [N] 月份标签 def __getitem__(self, idx): return { 'data': self.power_data[idx], 'label': F.one_hot(self.month_labels[idx]-1, num_classes=12) }

生成器的门道在条件融合这块。我们没用简单的concat,而是把月份标签做成了可学习的嵌入向量:

class Generator(nn.Module): def __init__(self): super().__init__() self.label_embed = nn.Embedding(12, 24*2) self.main = nn.Sequential( nn.ConvTranspose1d(100+24*2, 512, 4), nn.BatchNorm1d(512), nn.ReLU(), nn.ConvTranspose1d(64, 2, 4, padding=1), # 输出风光双通道 nn.Tanh()) def forward(self, z, labels): embedded = self.label_embed(labels).view(-1, 24*2, 1) combined = torch.cat([z, embedded], dim=1) return self.main(combined)

判别器这边有个骚操作——梯度惩罚(GP),这是WGAN-GP的灵魂。咱们来看个有意思的代码段:

def compute_gradient_penalty(D, real_data, fake_data, labels): alpha = torch.rand(real_data.size(0), 1, 1) interpolates = alpha * real_data + (1-alpha) * fake_data interpolates.requires_grad_(True) d_interpolates = D(interpolates, labels) gradients = autograd.grad( outputs=d_interpolates, inputs=interpolates, grad_outputs=torch.ones_like(d_interpolates), create_graph=True, retain_graph=True, only_inputs=True )[0] return ((gradients.norm(2, dim=1) - 1) ** 2).mean()

这个GP项能让训练稳如老狗,有效防止模式崩塌。对比原论文的DCGAN实现,咱们的损失函数也大有不同:

# 判别器损失 d_loss = -torch.mean(real_validity) + torch.mean(fake_validity) + lambda_gp * gp # 生成器损失 g_loss = -torch.mean(fake_validity)

没有用sigmoid交叉熵,而是直接玩均值,这也是Wasserstein距离的精髓。实际训练中发现,把学习率调到5e-5,判别器迭代5次生成器迭代1次,效果最带劲。

最后说说实际效果。在江苏某地的风光数据集上测试,JS散度比原方法降了38%,生成场景的时序波动特性跟真实数据肉眼难辨。更绝的是训练时间从原来的8小时缩到2.5小时,GPU显存占用还少了1G——这波改进血赚!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 18:23:01

LabVIEW Excel工具包:高效读写EXCEL样式模板,快速生成测试报告

LabVIEW Excel工具包快速读写EXCEL样式模板生成测试报告制作 LabVIEW工程师最头疼的Excel报告生成终于有解了!最近项目里被要求每天生成格式统一的测试报告,手动操作Excel差点把我逼疯。直到发现LabVIEW自带的Excel工具包,真香警告来了——原…

作者头像 李华
网站建设 2026/4/23 19:16:30

别再只比报价了:采购定价常用的四种方法

很多采购都有过这种场景。老板问:“这个物料,为什么比去年贵这么多?”你心里一紧,嘴上只能说:“已经找了三家供应商比价了,这家最便宜。”说实话,这句话在十年前可能还管用,现在越来…

作者头像 李华
网站建设 2026/4/13 16:39:20

听说有人想用智能算法暴打旅行商?这事我熟啊!当年被TSP按在地上摩擦的经历还历历在目。今天咱们拿遗传算法开刀,手把手教你造个能自己找最优路线的AI

智能优化算法解决旅行商TSP问题。 ——可选如PSO、GA、ABC、SA和GASA等相关的优化算法。 代码清晰、易懂,代码质量极高,便于新手学习和理解。 先看核心武器库——种群对象。这里用numpy搞了个骚操作:每个个体都是城市的乱序排列,像…

作者头像 李华
网站建设 2026/4/19 0:51:51

Java计算机毕设之基于springboot的高校学生心理健康管理系统基于Springboot的大学生心理健康管理平台(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/17 8:07:45

Java毕设选题推荐:基于Springboot的大学生心理健康管理平台基于springboot的高校学生心理健康管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/18 10:10:02

im推荐-BeeWorks私有化部署的局域网即时通讯工具

IM推荐-BeeWorks私有化部署的局域网即时通讯工具在当今数字化办公时代,选择一款安全、高效且可控的企业IM(即时通讯)工具,是构建高效协作团队和保障信息资产安全的基石。面对公有云通讯工具在数据隐私和网络依赖上的固有风险&…

作者头像 李华