【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”即可获得下载链接 ,源码分享,放心使用。

相关文章
|
传感器 算法 安全
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
420 4
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
743 2
|
传感器 机器学习/深度学习 编解码
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
357 3
|
传感器 资源调度 算法
基于无迹卡尔曼滤波(UKF)与模型预测控制(MPC)的多无人机避撞研究(Matlab代码实现)
基于无迹卡尔曼滤波(UKF)与模型预测控制(MPC)的多无人机避撞研究(Matlab代码实现)
542 1
|
12月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
469 0
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
713 0
|
12月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
946 0
|
12月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
1233 0
|
12月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
402 0

热门文章

最新文章