【人工智能笔记】第四十四节:TF2实现VITGAN对抗生成网络,Discriminator鉴别器 实现

sGAN网络的基本实现(mnist数据集) sGAN 阅读详情

网络结构图
该章节介绍VITGAN对抗生成网络中,Discriminator鉴别器 部分的代码实现。

目录(文章发布后会补上链接):

  1. 网络结构简介
  2. Mapping NetWork 实现
  3. PositionalEmbedding 实现
  4. MLP 实现
  5. MSA多头注意力 实现
  6. SLN自调制 实现
  7. CoordinatesPositionalEmbedding 实现
  8. ModulatedLinear 实现
  9. Siren 实现
  10. Generator生成器 实现
  11. PatchEmbedding 实现
  12. ISN 实现
  13. Discriminator鉴别器 实现
  14. VITGAN 实现

Discriminator鉴别器 简介

在这里插入图片描述
在这里插入图片描述
Discriminator鉴别器 参考的是ViT与BERT结构,加上三项修改。

代码实现

DiscriminatorEncoder 实现

import tensorflow as tf

import sys

sys.path.append('')

from models.msa import MSA
from models.mlp import MLP


class DiscriminatorEncoderLayer(tf.keras.layers.Layer):
    def __init__(self, d_model, num_heads, dropout=0.0, discriminator=True):
        super().__init__()
        self.d_model = d_model
        self.num_heads = num_heads
        self.dropout = dropout
        self.discriminator = discriminator
        self.ln1 = tf.keras.layers.LayerNormalization(epsilon=1e-6)
        self.msa1 = MSA(d_model, num_heads, discriminator=discriminator)
        self.ln2 = tf.keras.layers.LayerNormalization(epsilon=1e-6)
        self.mlp1 = MLP(d_model, discriminator=discriminator, dropout=dropout)

    def call(self, x, training):
        h = x
        x = self.ln1(x, training=training)
        x = self.msa1(v=x, k=x, q=x, mask=None)
        x = x + h
        h = x
        x = self.ln2(x, training=training)
        x = self.mlp1(x)
        x = x + h
        return x

class DiscriminatorEncoder(tf.keras.layers.Layer):
    def __init__(self, d_model, num_heads, num_layers, dropout=0.0, discriminator=True):
        super().__init__()
        self.d_model = d_model
        self.num_heads = num_heads
        self.num_layers = num_layers
        self.dropout = dropout
        self.discriminator = discriminator
        self.encoder_layers = [DiscriminatorEncoderLayer(d_model, num_heads, dropout=dropout, discriminator=discriminator) for i in range(num_layers)]

    def call(self, x, training):
        for encoder_layer in self.encoder_layers:
            x = encoder_layer(x=x, training=training)
        return x

if __name__ == "__main__":
    # layer = DiscriminatorEncoderLayer(256, 8)
    layer = DiscriminatorEncoder(256, 8, 4)
    x = tf.random.uniform([2,5,256], dtype=tf.float32)
    o1 = layer(x, training=True)
    tf.print('o1:', tf.shape(o1))

Discriminator鉴别器 实现

import tensorflow as tf
import sys


sys.path.append('')

from models.patch_embedding import PatchEmbedding
from models.discriminator_transformer_encoder import DiscriminatorEncoder
from models.mlp import MLP
from models.positional_embedding import PositionalEmbedding


class Discriminator(tf.keras.layers.Layer):
    """
    鉴别器
    """

    def __init__(
        self,
        image_size=224,
        patch_size=16,
        num_channels=3,
        overlapping=3,
        d_model=768,
        out_dim=1,
        dropout=0.0,
        discriminator=True,
    ):
        super().__init__()
        self.image_size = image_size
        self.patch_size = patch_size
        self.num_channels = num_channels
        self.overlapping = overlapping
        self.d_model = d_model
        self.out_dim = out_dim
        self.dropout = dropout
        self.discriminator = discriminator
        self.grid_size = image_size // patch_size
        self.num_patches = self.grid_size ** 2

        self.patch_embedding = PatchEmbedding(
            image_size=image_size,
            patch_size=patch_size,
            overlapping=overlapping,
            emb_dim=d_model,
            discriminator=discriminator,
        )
        # 输入位置编码
        self.patch_positional_embedding = PositionalEmbedding(
            sequence_length=self.num_patches+1,
            emb_dim=self.d_model,
        )
        self.discriminator_transformer_encoder = DiscriminatorEncoder(
            self.d_model,
            num_heads=8,
            num_layers=4,
            dropout=dropout,
            discriminator=discriminator,
        )
        self.mlp = MLP(out_dim, discriminator=discriminator, dropout=0.0)
        self.cls_token = tf.Variable(tf.random.uniform([1, 1, self.d_model], dtype=tf.float32), dtype=tf.float32)

    def call(self, x, training):
        batch_size = tf.shape(x)[0]
        x = self.patch_embedding(x)
        cls_token = tf.repeat(self.cls_token, repeats=batch_size, axis=0)
        x = tf.concat([cls_token, x], axis=1)
        x_pos = self.patch_positional_embedding()
        x += x_pos
        x = self.discriminator_transformer_encoder(x, training=training)
        x = self.mlp(x)
        x = x[:,0,:]
        # x = tf.math.sigmoid(x)
        return x


if __name__ == "__main__":
    layer = Discriminator(
        image_size=224,
        patch_size=16,
        num_channels=3,
        d_model=768
    )
    x = tf.random.uniform([2,224,224,3], dtype=tf.float32)
    o1 = layer(x, training=True)
    tf.print('o1:', tf.shape(o1))
    o1 = layer(x, training=False)
    tf.print('o1:', tf.shape(o1))

参考资料:

机器学习算法解析:判别器网络(Discriminator Network) 判别器网络是机器学习中非常重要的组件,它们用于解决各种监督学习问题,如图像分类、文本分类和声音识别。希望这篇博客帮助你理解判别器网络的基本概念和工作原理。如果你有任何问题或想进一步了解,请随时提出。愿你在机器学习的旅程中取得成功! 阅读详情

相关推荐

深入理解GAN网络

创造性地提出了对抗训练来代替人工指定的loss。之前的初步理解了一下,感觉还是不到位,在这里再稍微深入一点。

zcg1942的博客 1635

论文笔记:ViTGAN: Training GANs with Vision Transformers

ViT+GAN

qq_40206371的博客 1173

对抗神经网络(二)——DCGAN

一、DCGAN介绍 DCGAN即使用卷积网络的对抗网络,其原理和GAN一样,只是把CNN卷积技术用于GAN模式的网络里,G(生成器)网在生成数据时,使用反卷积的重构技术来重构原始图片。D(判别器)网用卷积技术来识别图片特征,进而做出判别。同时,CDGAN中的卷积神经网络也做了一些结构的改变,以提高样本的质量和收敛速度。 DCGAN的generator网络结构图如下: G网中使用ReLU作...

AI_girl的博客 1万+

【人工智能笔记】第三十二节:TF2实现VITGAN对抗生成网络,网络结构简介

该系列一共分成N篇文章,对照论文实现每个细节,并附上源码,该系列完成最后会附上github地址。

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 762

【论文笔记】—生成对抗网络—GAN—2014-NIPS

题目:Generative Adversarial Nets生成对抗神经网络GAN开山之作论文。论文作者为“生成对抗网络之父”Ian Goodfellow和图灵奖得主Youshua Bengio。GAN近年来成为人工智能和深度学习的热门研究领域。GAN广泛应用于图像生成、风格迁移、AI艺术、黑白老照片上色修复。你可以使用GAN实现照片转成油画、野马转成斑马、黑夜转成白天,简笔画的猫转成真猫,模糊图像转成高清图像等酷炫好玩的应用。EID:arXiv:1406.2661.....................

chaiky的博客 4061

GAN 判别模型:判别器 (Discriminator) 原理与代码实例讲解

GAN, 判别器, 生成器, 对抗训练, 深度学习, 图像生成 1. 背景介绍 生成对抗网络 (Generative Adversarial Networks, GANs) 是一种近年来备受关注的深度学习模型,它由两个相互竞争的网络组成:生成器 (Generator) 和判别器 (D

AI大模型应用之禅 1060

深度学习李宏毅21春_14_GAN_P1

GAN_P1 Generation Network as Generator 接下来要进入一个,新的主题 我们要讲生成这件事情 到目前為止大家学到的network,都是一个function,你给他一个X就可以输出一个Y 我们已经学到各式各样的,network架构,可以处理不同的X 不同的Y 我们学到输入的X 如果是一张图片的时候怎麼办 如果是一个sequence的时候怎麼办 我们也学到输出的Y 可以是一个数值 可以是一个类别 也可以是一个sequence 接下来我们要进入一个新的主题,这个新的主题

weixin_55064529的博客 415

Transformer大模型实战 了解ELECTRA

Transformer大模型实战 了解ELECTRA 1.背景介绍 在自然语言处理(NLP)领域,Transformer模型自从2017年被提出以来,已经成为了主流的架构。Transformer模型的出现极大地提升了NLP任务的性能,尤其是在机器翻译、文本生成和问答系统等

AI天才研究院 541

【人工智能笔记】第四十五节:TF2实现VITGAN对抗生成网络,VITGAN主体 实现

【人工智能笔记】第四十五节:TF2实现VITGAN对抗生成网络,VITGAN主体 实现

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 701

PotPlayer终极画质调校:深入MadVR渲染器设置,让你的显示器发挥100%潜力

本文深入探讨了如何通过MadVR渲染器优化PotPlayer的画质设置,充分发挥高端显卡和显示器的潜力。从色彩空间匹配、色深优化到HDR元数据处理,提供了一套完整的配置指南,帮助用户实现影院级视觉体验。特别适合拥有NVIDIA RTX或AMD RX系列显卡的用户进行精细调校。

weixin_42530458的博客 600

用Python实现一个简单的远程桌面服务端和客户端

本文介绍了一个基于Python的轻量级远程桌面解决方案,针对商业软件在嵌入式系统上的兼容性问题、性能问题和成本问题。系统采用客户端-服务端架构,包含两个通信通道:5000端口传输压缩视频流,5001端口传输控制事件。通过多线程设计、图像压缩(JPEG+zlib)和网络优化(禁用Nagle算法)等技术手段提高性能。服务端实现了高效的屏幕捕获(使用mss库)、图像处理流水线和事件处理逻辑。客户端采用PyQt5构建UI界面,包含视频接收线程以减少主线程负担。该方案具有跨平台、开源免费、轻量级(核心代码不到500行

Hi20240217的博客 1660

GAN对抗网络(代码详细解读)

从判别器D的角度 希望最大化 V(D,G)从生成器G的角度 希望最小化 V(D,G)GAN的应用领域1.图像生成生成一些假的数据 比如海报中的人脸2.图像增强从分割图生成假的真实街景 方便训练无人汽车3.风格化和艺术的图像创造转换图像风格 修补图像4.声音的转换一个人的声音转为另一个的声音 去除噪音等。

disciplining的博客 6520

毫米波雷达dd-mimo中发射天线辐射方向图变化

本文详细介绍了dd-mimo的相位调制原理,以及分离天线的办法,最后演示了在dd-mimo中因为相位调制带来的辐射方向图的变化。

weixin_44555637的博客 1167

HiDDeN Discriminator——基于深度学习的水印生成网络“鉴别器”详解

HiDDeN Discriminator——基于深度学习的水印生成网络“鉴别器”详解

girl_Xiaomin的博客 864

vue3:最新实现腾讯人脸核身+增强版人脸核身使用方法及示例源码,Vue3如何使用腾讯云慧眼人脸核身,提供人脸核身案例、身份信息核验、活体检测与核身比对等示例代码(后端spring与thinkphp)

vue3接入腾讯人脸核身,腾讯云人脸核身Vue3+后端代码,H5人脸核身,vue3 H5如何使用腾讯人脸核身sdk,vue3+thinkphp腾讯人脸核身,Spring Boot接入腾讯云人脸核身教程,hinkphp腾讯人脸核身,vue3人脸核身插件接入流程,vue+spring boot实现腾讯人脸核身,vue3接入腾讯云【增强版人脸核身接入】,vue3 h5微信公众号网页腾讯云慧眼人脸核身,tvue3接入人脸核身SDK,vue3+typescrip+vite接入慧眼实名认证,vue3腾讯云活体人脸核身(

✅ 精选推荐文章 4119

Python全栈入门到实战【进阶篇 2】面向对象之封装:私有属性、私有方法与@property优雅访问

_属性名真正私有方法:双下划线开头(__方法名()),Python自动名字改写,外部无法访问;约定私有方法:单下划线开头(_方法名()),仅为编程约定,外部可访问但不推荐。实战中优先使用“真正私有方法”,隐藏核心辅助逻辑。封装的本质:隐藏对象的核心数据(私有属性)和内部逻辑(私有方法),仅对外提供规范、安全的访问接口,实现数据安全与可维护性;私有属性真正私有:双下划线开头(__属性名),Python名字改写,外部无法直接访问,仅类内部可用;约定私有:单下划线开头(_属性名。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 2915

GAN(论文+Jittor框架实现代码)

gan.py import jittor as jt from jittor import init from jittor import nn from jittor.dataset.mnist import MNIST from jittor.dataset.dataset import ImageFolder import jittor.transform as transform import argparse import os import numpy as np from loguru i

qq_41048761的博客 1353

把 sy-* 带进 ABAP CDS:ABAP 7.50 里的环境信息新姿势($session 与 @Environment.systemField 实战)

摘要:ABAP 7.50在CDS视图中引入两种获取环境信息的方式:1)直接使用$session会话变量读取用户、客户端和系统语言;2)通过@Environment.systemField注解参数,由Open SQL自动注入系统字段。$session方式简单但依赖Open SQL访问路径,非ABAP环境下可能失效;注解参数方案更工程化,依赖关系明确且支持测试。建议ABAP体系内优先使用$session,对外接口采用参数化方案。两种方式各有适用场景,正确选择可避免潜在风险。(148字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 152

FusionGAN:VIIF

仅供自己参考

weixin_43690932的博客 989

番外篇 | 复现HIC-YOLOv5,助力小目标物体的检测

在本文中提出了一种改进的YOLOv5算法:HIC-YOLOv5,用于小目标检测,具有更好的性能和较低的计算成本。🌈

小哥谈 1130

对CryptoDriver里密钥格式定义的探索(1)

一入网络安全才发现深似海,传统汽车MCU码农转型之路异常艰难。在CP AUTOSAR中的CryptoDriver SWS对密钥格式的需求来源于RFC,其中要求了RSA、ECC、SHE等key material的格式。再往下看,我就有些迷糊了,例如关于RSA Private Key的OCTEE STRING格式根据IETF RFC8017,Public Key又得根据RFC5280,完全不得其解。所以今天先从生成密钥对,并对其进行解析开始,一步一步拆解。

认真搞搞汽车MCU 527

生成对抗网络(GAN)

Generative Adversarial Network GAN的概述 GAN的思想就是:这是一个两人的零和博弈游戏,博弈双方的利益之和是一个常数,比如两个人掰手腕,假设总的空间是一定的,你的力气大一点,那你就得到的空间多一点,相应的我的空间就少一点,相反我力气大我就得到的多一点,但有一点是确定的就是,我两的总空间是一定的,这就是二人博弈,但是呢总利益是一定的。 用一个形象的例子解释就是:GAN就好比是一个大的网络,在这个网络中有两个小的网络,一个是生成网络,可以当做是制作假钞的人, 而另一个

weixin_36670529的博客 4538

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

半监督论文学习

半监督论文学习

Vae_fans的博客 1108

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

AI深度学习入门与实战10 生成式对抗网络:艺术创造也可以成为深度学习的拿手好戏

因为这一讲主要是概念和知识点的介绍,所以就没有对训练的过程展开。如果你感兴趣,可以在看完文章后自行补充训练过程的框架,即可得到一个属于自己的GAN 网络。但是如果你觉得自己暂时不能够完成补充,没有关系,在后续的 TensorFlow 介绍和实战中,我们将会学习如何构建一个训练流程,到时候你就知道了。那么,你还了解 GAN 的哪些应用呢?欢迎在留言区留言。下一讲,我将带你了解 Jupyter Notebook,它是深度学习编程常用的工具。

fegus的博客 1205

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

学习记录(三)生成对抗网络的初步认识

学习记录(三)

要多喝牛奶才能变成巨人 403

(十二)Mybatis鉴别器discriminator和延迟加载的用法

这篇文章主要讲述Mybatis鉴别器discriminator和延迟加载的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。 这里写目录标题什么是鉴别器?代码示例总结 什么是鉴别器? mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为 代码示例 这里我们以一个一对一的联查来使用鉴别器和延迟加载来完成一些特定要求。 Employee类 此处省略get,set方法等。。 public class Employee { pri

怪咖@的博客 1023
上一篇: 【人工智能笔记】第三十六节:TF2实现VITGAN对抗生成网络,MSA多头注意力 实现
下一篇: 【人工智能笔记】第四十五节:TF2实现VITGAN对抗生成网络,VITGAN主体 实现
PPHT-H
博客等级 码龄18年 6254粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PPHT-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值