【MATLAB第27期】源码分享 | 基于MATLAB的生成对抗网络GAN回归预测模型

简介: 【MATLAB第27期】源码分享 | 基于MATLAB的生成对抗网络GAN回归预测模型

MATLAB第27期】源码分享 | 基于MATLAB的生成对抗网络GAN回归预测模型

源码可进行分享,放心使用,后台回复“27”即可。
原理:略。


一、主程序代码


%% 1.首先是预定义:
clear; clc; %%%clc是清除当前command区域的命令,表示清空,看着舒服些 。而clear用于清空环境变量。两者是不同的。
%%%装载数据集
train_x=rand(1,30);%train_x就是我们希望GAN网络能够生成与其相似的数据。其中
Neuron1=size(train_x,2);% 第一层神经元,与数据列数相等
[m,n]=size(train_x);%m表示train_x有多少行,n表示有多少列。
%%%定义模型
generator=nnsetup([Neuron1]);%[30,30]第一个30代表第一层有30个神经元,这是要与train_x的维度相同的,最后一个30也是要与train_x的维度相同。
discriminator=nnsetup([Neuron1 1]);%[30,1]第一个30要与生成器的最后一层的神经元个数相同,最后一层是1个神经元,输出的是每个样本来自于真实数据的概率。
%%参数设置
batch_size=m; %batchsize表示一次输入多少样本进行训练,因为我的数据量少,直接全部输入进去就行了。
iteration=1000;%迭代多少次,或者说走多少次正向传播。
images_num=m;
batch_num=floor(images_num / batch_size);
learning_rate=0.0001;
%% 8.第八部分, 上正餐,开始训练GAN。
for i=1:iteration
        kk=randperm(images_num);
        images_real=train_x;
        noise=unifrnd(0,1,m,Neuron1);
        generator=nnff(generator,noise);
        images_fake=generator.layers{generator.layers_count}.a;
        discriminator=nnff(discriminator,images_fake);
        logits_fake=discriminator.layers{discriminator.layers_count}.z;
        discriminator=nnbp_d(discriminator, logits_fake, ones(batch_size,1));
        generator= nnbp_g(generator, discriminator);
        generator=nnbp_g(generator, discriminator);
        generator=nnapplygrade(generator,learning_rate);
        %%%%%%%开始更新判别器
        generator=nnff(generator,noise);
        images_fake=generator.layers{generator.layers_count}.a;
        images=[images_fake;images_real];
        discriminator=nnff(discriminator,images);
        logits=discriminator.layers{discriminator.layers_count}.z;
        logits = discriminator.layers{discriminator.layers_count}.z;
    labels = [zeros(batch_size,1); ones(batch_size,1)];%预定义一个标签,前面的数据是0,后面的是1,也进行了拼接。
    discriminator = nnbp_d(discriminator, logits, labels);%logits与真实的标签进行对比,
    discriminator = nnapplygrade(discriminator, learning_rate);%更新了辨别器网络的权重。
    %----输出loss损失
    c_loss(i,:) = sigmoid_cross_entropy(logits(1:batch_size), ones(batch_size,1));%这是生成器的损失
    d_loss (i,:)= sigmoid_cross_entropy(logits, labels);%判别器的损失
end
figure()
plot(images_real)
hold on
plot(images_fake)
legend('实际值','GAN生成值')


二、运行效果



三、获取方式


后台私信回复“27”即可获得下载链接 ,源码分享,放心使用。

相关文章
|
2天前
|
算法
MATLAB|【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型
这段内容介绍了一个使用改进的麻雀搜索算法优化CNN-BiLSTM模型进行多输入单输出预测的程序。程序通过融合正余弦和柯西变异提升算法性能,主要优化学习率、正则化参数及BiLSTM的隐层神经元数量。它利用一段简单的风速数据进行演示,对比了改进算法与粒子群、灰狼算法的优化效果。代码包括数据导入、预处理和模型构建部分,并展示了优化前后的效果。建议使用高版本MATLAB运行。
|
2天前
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:生成对抗网络(GAN)
使用Python实现深度学习模型:生成对抗网络(GAN)
18 3
|
3天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了使用matlab2022a中优化后的算法,应用于时间序列回归预测,结合CNN、LSTM和Attention机制,提升预测性能。GWO算法用于优化深度学习模型的超参数,模拟灰狼社群行为以求全局最优。算法流程包括CNN提取局部特征,LSTM处理序列依赖,注意力机制聚焦相关历史信息。GWO的灰狼角色划分和迭代策略助力寻找最佳解。
|
4天前
|
机器学习/深度学习 编解码 自然语言处理
深度学习500问——Chapter07:生成对抗网络(GAN)(3)
深度学习500问——Chapter07:生成对抗网络(GAN)(3)
12 0
|
4天前
|
机器学习/深度学习 JavaScript Linux
深度学习500问——Chapter07:生成对抗网络(GAN)(2)
深度学习500问——Chapter07:生成对抗网络(GAN)(2)
14 0
|
4天前
|
机器学习/深度学习 JavaScript 算法
深度学习500问——Chapter07:生成对抗网络(GAN)(1)
深度学习500问——Chapter07:生成对抗网络(GAN)(1)
20 3
|
4天前
|
Linux 开发工具
【项目--Hi3559A】如何在Hi3559A上运行自己的yolov3模型(修改类别、网络结构)
【项目--Hi3559A】如何在Hi3559A上运行自己的yolov3模型(修改类别、网络结构)
9 0
|
4天前
|
机器学习/深度学习 自然语言处理 网络安全
【pkuseg】由于网络策略组织下载请求,因此直接在github中下载细分领域模型medicine
【pkuseg】由于网络策略组织下载请求,因此直接在github中下载细分领域模型medicine
7 1
|
4天前
|
机器学习/深度学习 并行计算 算法
MATLAB|【免费】概率神经网络的分类预测--基于PNN的变压器故障诊断
MATLAB|【免费】概率神经网络的分类预测--基于PNN的变压器故障诊断
|
4天前
|
机器学习/深度学习 数据可视化 算法
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究

热门文章

最新文章