gan

Easy way to clamp Neural Network outputs between 0 and 1?

喜你入骨 提交于 2020-06-17 00:04:28
问题 So I'm working on writing a GAN neural network and I want to set my network's output to 0 if it is less than 0 and 1 if it is greater than 1 and leave it unchanged otherwise. I'm pretty new to tensorflow, but I don't know of any tensorflow function or activation to do this without unwanted side effects. So I made my loss function so it calculates the loss as if the output was clamped, with this code: def discriminator_loss(real_output, fake_output): real_output_clipped = min(max(real_output

GAN论文

做~自己de王妃 提交于 2020-03-21 18:16:34
https://yq.aliyun.com/articles/228765 D2GAN论文翻译 https://blog.csdn.net/stalbo/article/details/79283399 GAN论文翻译 来源: https://www.cnblogs.com/gaona666/p/12540146.html

GAN(对抗生成网络)的数学原理及基本算法

烈酒焚心 提交于 2020-03-16 20:15:57
GAN在生成任务上与其他方法对比 Machine Learning (ML) 本质上是寻找一个函数 f : X → Y f:X\to Y f : X → Y ,通过网络来近似这个函数。 Structured Learning (SL) 输出相对于ML更加复杂,可能是图、树、序列……通常ML的问题,每个类别都会有一些样本,但是SL则不会——输出可能是输入从来没见过的东西。 在 GAN 之前, auto-encoder (AE) 非常常用。AE结构:输入 → \to → encoder → \to → vector c → \to → decoder → \to → 输出。训练的时候要使得输入输出尽可能相近。当做生成任务的时候,截取AE的decoder部分,随机给vector c,输出即生成的结果。所以可见AE可以用于做生成——即将decoder输出视为生成信息。但是这种训练方式面对一个问题,假设A、B都是训练集信息,针对A、B网络能够很好的进行生成,但是当面对 0.5 A + 0.5 B 0.5A+0.5B 0 . 5 A + 0 . 5 B 网络将会不知道输出应该是什么(最大的可能是两个图像的堆叠)。 对AE的改进叫做 variational-AE (VAE) 在之前模型结构的基础上,对输入加上了噪声,其余不变。这种操作能够让模型能加稳定。 VAE同样有一个问题

Adversarial Image Registration with Application for MR and TRUS Image Fusion

 ̄綄美尐妖づ 提交于 2020-03-12 14:11:42
一、Motivation 1 磁共振(MR)和经直肠超声(TRUS)图像配准是MR-TRUS融合的关键组成部分。 2.由于图像外观之间的巨大差异以及图像对应关系的较大差异。 3 提出了对抗图像配准(AIR)框架。 通过同时训练两个深度神经网络,一个是生成器,另一个是判别器。 4 而且还有一个度量网络,可以帮助评估图像配准的质量。 5 但是,多模式图像配准是一项非常艰巨的任务,因为很难定义鲁棒的图像相似性度量。 6 由于超声图像的嘈杂外观以及MR和TRUS之间的成像分辨率不均匀,因此MR和TRUS的配准更加困难。 二、Contribution 我们提出了一种基于生成对抗网络(GAN)框架[9]并同时训练了CNN的多模态图像配准方法,用于 变换参数估计和配准质量评估 . 提出的AIR-net不仅可以通过G网络的有效前馈直接估计转换参数,而且可以评估D网络估计的配准质量。 AIR-net以端到端的方式进行训练,训练完成后,G和D都将可用。 三、Method 该框架包含两个部分: 1)registration generator 2)registration discriminator 配准生成器用于直接估计变换参数。 图像重采样器然后使用估计的变换参数Test或ground truth变换Tgt对moving image进行插值以获得新的重采样的moving image。 配准判别器(D

莫烦 pytorch GAN

最后都变了- 提交于 2020-03-10 05:58:53
我的视频学习笔记 视频地址:https://www.bilibili.com/video/av15997678?p=29 源地址:https://github.com/MorvanZhou/PyTorch-Tutorial/blob/master/tutorial-contents/406_GAN.py 讲解:https://morvanzhou.github.io/tutorials/machine-learning/torch/4-06-GAN/ import torch import matplotlib . pyplot as plt import numpy as np import torch . nn as nn # Hyper Parameters BATCH_SIZE = 64 LR_G = 0.0001 LR_D = 0.0001 N_IDEAS = 5 ART_COMPONENTS = 15 PAINT_POINTS = np . vstack ( [ np . linspace ( - 1 , 1 , ART_COMPONENTS ) for _ in range ( BATCH_SIZE ) ] ) # -1,1的坐标上有15个点 def artist_works ( ) : a = np . random . uniform ( 1 , 2 , size

[LRFR] (GAN) Finding Tiny Faces in the Wild with Generative Adversarial Network

ぃ、小莉子 提交于 2020-03-05 07:26:06
参考:https://zhuanlan.zhihu.com/p/36245761 本文主要解决无限制场景下的 微小人脸检测问题 ,tiny face指 尺寸小,分辨率低 ,模糊并缺乏必要信息的人脸patch,tiny face检测问题如下图所示。通过利用 GAN 模型对tiny face进行 高分辨和去模糊的人脸生成 ,在通过判别器来进行识别。 生成网络包含 : super-resolving(超分辨率重建): Prob : 分辨率低 algorithm:SR-GAN refining (精炼) : Prob : 人脸模糊 algorithm:cycle-GAN 整体网络结构主要包括 MB-FCN 和 GAN 两部分,如下图所示。 MB-FCN detector检测器 用于初步检测,训练时为GAN网络提供样本,测试时为GAN提供ROI(Region of Interest)。 (ROI Pooling是针对RoIs的Pooling,其特点是输入特征图尺寸不固定,但是输出特征图尺寸固定。 在Fast RCNN中, RoI是指Selective Search完成后得到的“候选框”在特征图上的映射在Faster RCNN中,候选框是经过RPN产生的,然后再把各个“候选框”映射到特征图上,得到RoIs) GAN网络使用生成器和判别器构成。 Generator Network 生成器网络:

GAN

ε祈祈猫儿з 提交于 2020-03-03 18:37:57
带泄露修正线性单元(Leaky ReLU) Dropout Dropout 的工作原理是我们在前向传播的时候,让某个神经元的激活值以一定的概率停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征 Batch Normallzatlon Batch Normalization就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布。 用大白话描述就是,计算出当前batch的每个channel的均值mean,计算出当前batch的每个channel的方差variance,令输入减去均值再除以标准差delta,得到normalized输出x-hat,最后乘以scale参数gamma,加上shift参数beta,得到最终变换后的输出y。 Adam 二元交叉熵 model . train_on_batch ( ) 在训练集数据的一批数据上进行训练 train_on_batch ( x , y , sample_weight = None , class_weight = None ) # -*- coding: UTF-8 -*- #@Time : 2020/3/3 @Author : SUNLIN from keras . datasets import mnist from keras . layers import Input , Dense , Reshape

基于GAN的特征抽取 Feature Extraction by GAN

风流意气都作罢 提交于 2020-02-29 07:36:00
InfoGAN 期望的是 input 的每一个维度都能表示输出数据的某种特征。但实际改变输入的一个特定维度取值,很难发现输出数据随之改变的规律。 InfoGAN 就是想解决这个问题。在 GAN 结构以外,把输入 z 分成两个部分 c 和 z' ,然后根据 generated data x 来预测给到 generator 的 c 是什么,这里的ae 做的事情是 code-x-code。同时还需要 discriminator 来配合,x 还必须要足够像目标数据(要不 generator 直接把 c 复制过来就最容易让 classifer 预测对)。 为了要让 classifer 可以成功从 x 中预测原来的 c(能反推回去),那 generator 就要让 c 的每一个维度都对 output 有一个明确的影响。就让 z' 去表示那些无法解释的特征。 VAE-GAN 可以看作用 GAN 来强化 VAE(让VAE生成的数据更加realistic),也可以看作用 VAE 来强化 GAN(原本的 GAN 是随机从 z 到 x,现在训练的时候 generator 还要尽可能好地重构 z 原本的 x,从一开始就知道一个 z 它对应的 x 应该是什么样,所以 VAE-GAN 训练会稳定一些) 训练流程。其中,原本的真实数据 x 、VAE 从 x 经过 encoder 得到 z ~ 再经过

回顾InfoGAN与隐变量

佐手、 提交于 2020-02-08 02:25:40
一、代码 1. MNIST数据集的引变量c dataset = MnistDataset()#数据集MNIST latent_spec = [ (Uniform(62), False),#62类默认是false (Categorical(10), True),#离散码c1 (Uniform(1, fix_std=True), True),#连续码c2 (Uniform(1, fix_std=True), True),#连续码c3 ] 隐变量是由 列表 构成(列表是由一系列按特定顺序排列的元素组成,用[]来表示,并用逗号分隔其中的元素}) 2. 互信息的参数定义 互信息计算起始于如下两个变量: reg_z:表示了模型开始随机生成的隐变量 fake_ref_z_dist_info:表示了经过Encoder计算后的隐变量分布信息 根据连续型和离散型的分类,两个变量分成了以下四个变量: cont_reg_z:reg_z的连续变量部分 cont_reg_dist_info:fake_ref_z_dist_info的连续变量部分 disc_reg_z:reg_z的离散变量部分 disc_reg_dist_info:fake_ref_z_dist_info的离散变量部分 四个变量两两组队完成了后验公式 P(c)logQ(c|g?([c,z]) 的计算: cont_log_q_c_given_x

GANFuzz:A GAN-based industrial network protocol fuzzing framework

烂漫一生 提交于 2020-02-04 19:03:56
GANFuzz:A GAN-based industrial network protocol fuzzing framework 1.简介 1.GANFuzz,提出了一种新的测试用例生成方法,并在此基础上构建了一个模糊框架。 2.为了提高代码覆盖率和测试深度,提出了三种从不同维度对协议消息进行分类的聚类策略,利用这三种策略,所学习的生成模型可以生成更为多样化和格式良好的测试用例。 3.在实验中,使用GANFuzz原型测试了几个Modbus-TCP模拟器,成功地揭示了一些新的缺陷和已知的问题。 2.背景知识 GAN RNN作为generator CNN作为discriminator 3.方法 3.1 步骤 1.对msg进行聚类。在给定一个真实的协议msg集作为训练数据的情况下,我们采用三种聚类策略来提供三种方法来对数据进行分类。对于每一种策略,我们所关注的特征和功能w.r.t协议消息是不同的。它允许我们从不同的维度进行模糊处理。它有助于提高代码覆盖率和测试深度。 2.学习协议语法。我们使用生成对抗网络和SeqGan算法对将协议语法学习问题进行建模为估计生成模型的过程。通过深度学习训练,生成模型从真实的协议消息中自动揭示协议语法。 3.生成测试用例。学习的生成模型能够生成类似于真实协议消息的序列。利用生成模型可以生成模糊测试用例。 3.2 聚类msg NoClustering