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

TimeGAN:时间序列生成对抗网络(TimeGAN)的代码库-NeurIPS 2019 “时间序列生成对抗网络(TimeGAN)”的代码库 作者:尹成ung,丹尼尔·贾瑞特,米哈埃拉·范德沙尔 参考:Jinsung Yoon,Daniel Jarrett,Mihaela van der Schaar,“时间序列生成对抗网络”,神经信息处理系统(NeurIPS),2019年。 论文链接: : 联络人: 该目录包含使用一个合成数据集和两个真实数据集生成合成时间序列数据的TimeGAN框架的实现。 正弦数据:合成 股票数据: : 能源数据: : 要运行有关TimeGAN框架的培训和评估的管道,只需运行python3 -m main_timegan.py或在tutorial_timegan.ipynb中查看TimeGAN的jupyter-notebook教程。 注意,任何模型体系结构都可以用作生成器和鉴别器模型,例如RNN或Transformers。 代码说 立即下载

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

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

  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 实现

Generator生成器 简介

Generator生成器
论文原文
上图是整个完整的 Generator生成器结构,由前面几章的模块组合而成。

代码实现

GeneratorEncoder代码实现

import tensorflow as tf

import sys

sys.path.append('')

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


class GeneratorEncoderLayer(tf.keras.layers.Layer):
    def __init__(self, d_model, num_heads, dropout=0.0):
        super().__init__()
        self.d_model = d_model
        self.num_heads = num_heads
        self.sln1 = SLN(d_model)
        self.msa1 = MSA(d_model, num_heads, discriminator=False)
        self.sln2 = SLN(d_model)
        self.mlp1 = MLP(d_model, discriminator=False, dropout=dropout)

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

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

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

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

Generator代码实现,不含博里叶位置编码

import tensorflow as tf
import sys

sys.path.append('')

from models.mapping_network import MappingNetwork
from models.generator_transformer_encoder import GeneratorEncoder
from models.coordinates_positional_embedding import CoordinatesPositionalEmbedding
from models.siren_test import Siren
from models.sln import SLN
from models.positional_embedding import PositionalEmbedding
from models.modulated_linear import ModulatedLinear
from models.mlp import MLP


class Generator(tf.keras.layers.Layer):
    """
    生成器
    """

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

        self.mapping_network = MappingNetwork(
            self.d_model,
            num_layers=8
        )

        # 输入位置编码
        self.patch_positional_embedding = PositionalEmbedding(
            sequence_length=self.num_patches,
            emb_dim=self.d_model,
        )

        self.generator_transformer_encoder = GeneratorEncoder(
            d_model,
            num_heads=8,
            num_layers=4,
            dropout=dropout,
        )
        self.sln1 = SLN(d_model)

        self.siren = Siren(
            hidden_dim=d_model,
            hidden_layers=2,
            out_dim=d_model,
            first_omega_0=30,
            hidden_omega_0=30,
            demodulation=True,
            outermost_linear=False
        )

    def call(self, x, training):
        batch_size = tf.shape(x)[0]
        w = self.mapping_network(x, training=training)
        # 输入位置编码
        x_pos = self.patch_positional_embedding()
        x = self.generator_transformer_encoder(x=x_pos, w=w, training=training)
        x = self.sln1(x, w, training=training)
        x = self.siren(x) # (B, L, E=P*P*C)
        x = tf.reshape(x, [batch_size, self.grid_size, self.grid_size, self.patch_size, self.patch_size, self.num_channels])
        x = tf.transpose(x, perm=[0,1,3,2,4,5])
        x = tf.reshape(x, [batch_size, self.image_size, self.image_size, self.num_channels])
        return x


if __name__ == "__main__":
    layer = Generator(
        image_size=224,
        patch_size=16,
        num_channels=3,
        d_model=768
    )
    x = tf.random.uniform([2,1,768], 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))

Generator代码实现,包含博里叶位置编码。论文没描述该结构细节,这是一种猜测,试过无效,可能有误。

import tensorflow as tf
import sys

sys.path.append('')

from models.mapping_network import MappingNetwork
from models.generator_transformer_encoder import GeneratorEncoder
from models.coordinates_positional_embedding import CoordinatesPositionalEmbedding
from models.siren import Siren
from models.sln import SLN
from models.positional_embedding import PositionalEmbedding
from models.modulated_linear import ModulatedLinear
from models.mlp import MLP


class Generator(tf.keras.layers.Layer):
    """
    生成器
    """

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

        self.mapping_network = MappingNetwork(
            self.d_model,
            num_layers=8
        )

        # 输入位置编码
        self.patch_positional_embedding = PositionalEmbedding(
            sequence_length=self.num_patches,
            emb_dim=self.d_model,
        )

        self.generator_transformer_encoder = GeneratorEncoder(
            d_model,
            num_heads=8,
            num_layers=4,
            dropout=dropout,
        )
        self.sln1 = SLN(d_model)
        # 博里叶位置编码
        self.coordinates_positional_embedding = CoordinatesPositionalEmbedding(
            patch_size=patch_size,
            emb_dim=d_model,
            )

        self.siren = Siren(
            hidden_dim=d_model,
            hidden_layers=2,
            out_dim=num_channels,
            first_omega_0=30,
            hidden_omega_0=30,
            demodulation=True,
            outermost_linear=False
        )

        self.modulated_linear = ModulatedLinear(
            hidden_dim=d_model,
            output_dim=d_model,
            demodulation=True,
            use_bias=False,
            kernel_initializer=tf.initializers.GlorotNormal(),
        )

    def call(self, x, training):
        batch_size = tf.shape(x)[0]
        w = self.mapping_network(x, training=training)
        # 输入位置编码
        x_pos = self.patch_positional_embedding()
        x = self.generator_transformer_encoder(x=x_pos, w=w, training=training)
        x = self.sln1(x, w, training=training)
        # 博里叶位置编码
        e_fou = self.coordinates_positional_embedding(x)
        x = self.siren((e_fou, x)) # (B*L, P*P, E)
        x = tf.reshape(x, [batch_size, self.grid_size, self.grid_size, self.patch_size, self.patch_size, self.num_channels])
        x = tf.transpose(x, perm=[0,1,3,2,4,5])
        x = tf.reshape(x, [batch_size, self.image_size, self.image_size, self.num_channels])
        return x


if __name__ == "__main__":
    layer = Generator(
        image_size=224,
        patch_size=16,
        num_channels=3,
        d_model=768
    )
    x = tf.random.uniform([2,1,768], 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))

Generator代码实现,包含博里叶位置编码。论文没描述该结构细节,这是另一种猜测,试过无效,可能有误。

import tensorflow as tf
import sys

sys.path.append('')

from models.mapping_network import MappingNetwork
from models.generator_transformer_encoder import GeneratorEncoder
from models.coordinates_positional_embedding import CoordinatesPositionalEmbedding
from models.siren import Siren
from models.sln import SLN
from models.positional_embedding import PositionalEmbedding
from models.modulated_linear import ModulatedLinear
from models.mlp import MLP


class Generator(tf.keras.layers.Layer):
    """
    生成器
    """

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

        self.mapping_network = MappingNetwork(
            self.d_model,
            num_layers=8
        )

        # 输入位置编码
        self.patch_positional_embedding = PositionalEmbedding(
            sequence_length=self.num_patches,
            emb_dim=self.d_model,
        )

        self.generator_transformer_encoder = GeneratorEncoder(
            d_model,
            num_heads=8,
            num_layers=4,
            dropout=dropout,
        )
        self.sln1 = SLN(d_model)
        # 博里叶位置编码
        self.coordinates_positional_embedding = CoordinatesPositionalEmbedding(
            patch_size=patch_size,
            emb_dim=d_model,
            )

        self.siren = Siren(
            hidden_dim=d_model,
            hidden_layers=2,
            out_dim=d_model,
            first_omega_0=30,
            hidden_omega_0=30,
            demodulation=True,
            outermost_linear=False
        )

        self.modulated_linear = ModulatedLinear(
            hidden_dim=d_model,
            output_dim=d_model,
            demodulation=True,
            use_bias=False,
            kernel_initializer=tf.initializers.GlorotNormal(),
        )
        self.mlp1 = MLP(d_model, discriminator=False, dropout=dropout)
        self.mlp2 = MLP(num_channels, discriminator=False, dropout=dropout)

    def call(self, x, training):
        batch_size = tf.shape(x)[0]
        w = self.mapping_network(x, training=training)
        # 输入位置编码
        x_pos = self.patch_positional_embedding()
        x = self.generator_transformer_encoder(x=x_pos, w=w, training=training)
        x = self.sln1(x, w, training=training)
        # 博里叶位置编码
        e_fou = self.coordinates_positional_embedding(x) # (B*L, P*P, E)
        e_fou = self.siren(e_fou) # (B*L, P*P, E)
        x = self.modulated_linear((e_fou, x)) # (B*L, P*P, E)
        x = self.mlp1(x, training=training)
        x = self.mlp2(x, training=training)
        x = tf.math.sin(x)
        x = tf.reshape(x, [batch_size, self.grid_size, self.grid_size, self.patch_size, self.patch_size, self.num_channels])
        x = tf.transpose(x, perm=[0,1,3,2,4,5])
        x = tf.reshape(x, [batch_size, self.image_size, self.image_size, self.num_channels])
        return x


if __name__ == "__main__":
    layer = Generator(
        image_size=224,
        patch_size=16,
        num_channels=3,
        d_model=768
    )
    x = tf.random.uniform([2,1,768], 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))

参考资料:

Python爬虫实战:美团商家数据采集系统 本文将详细介绍如何使用Python最新技术栈构建高效的美团商家信息采集系统。内容涵盖异步爬虫、反爬对抗、数据存储、可视化分析等完整流程,提供可落地的代码方案和工程实践。 阅读详情

相关推荐

【有啥问啥】智能座舱CPD技术:毫米波雷达如何守护儿童安全?

本文深入探讨了智能座舱中CPD(Child Presence Detection)技术如何通过毫米波雷达保障儿童安全。毫米波雷达凭借其穿透性检测、微动感知等优势,成为儿童遗留车内的有效解决方案。文章详细解析了技术原理、系统集成方案及安装指南,为智能座舱安全技术提供了实用参考。

weixin_29193259的博客 358

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

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

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

6G网络的关键技术、应用前景与挑战并存的科技征途

移动通信技术正以前所未有的速度迭代更新,而6G技术的研发进程渐渐成为了当前科技领域的热点。全球各国已纷纷将目光投向了充满想象的6G时代。本文将探讨全球6G技术研发的最新进展,以及6G技术的核心创新与潜在应用。

fiberroad的博客 2424

【人工智能笔记】第三十三节:TF2实现VITGAN对抗生成网络,Mapping NetWork 实现

该章节介绍VITGAN对抗生成网络中,Mapping NetWork 部分的代码实现。

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

告别版本冲突!在Ubuntu 20.04上优雅实现ROS Noetic与ROS2 Foxy双环境切换

本文详细介绍了在Ubuntu 20.04系统上实现ROS Noetic(ROS1)与ROS2 Foxy双环境共存与切换的完整方案。通过智能脚本设计和工作空间隔离,解决了版本冲突问题,帮助开发者高效管理不同ROS版本项目。特别适合需要同时开发ROS1和ROS2应用的机器人开发者。

weixin_28452161的博客 411

6轴机械臂(拟人臂+球形腕(三轴相交于一点))正逆运动学求解

1、DH坐标下机械臂参数 theta=[pi/10,pi/2,pi/4,-pi/4,pi/4,-pi/8];%关节角度 a=[0, 0.260, 0.025, 0, 0, 0];%连杆长度 d=[0, 0, 0, 0.280, 0, 0.072];%偏移距离 alpha=[pi/2, 0, pi/2, -pi/2 , pi/2, 0];%RBR型6轴机械臂 使用...

qq_33374294的博客 7885

【人工智能笔记】第二十节 efficientdet 目标检测模型,官方源码分析系列,BiFPN实现细节分析(二)

本章继续分析,BiFPN的实现部分。各种FPN结构如下: 如图,单个BiFPN有8个Node。在Efficientdet模型中,由如下类组成: FPNCells:按fpn_cell_repeats参数生成重复多个BiFPN。 FPNCell:代表单个BiFPN,包含8个Node。 FNode:将当前Node的多个输入融合,产生一个输出。 代码结构如下: FPNCells代码如下: class FPNCells(tf.keras.layers.Layer): .

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

反应动力学仿真软件:Kintecus_(3).Kintecus安装与配置

在本节中,我们将详细介绍如何安装和配置Kintecus反应动力学仿真软件。Kintecus是一款功能强大的工具,用于模拟和分析化学反应的动力学过程。正确安装和配置软件是开始使用它的第一步。我们将分步骤介绍软件的安装过程,并提供一些基本配置的示例。

kkchenjj的博客 1554

Mask RCNN训练自己的数据集(修正及windows下使用labelme)

原文参考:https://blog.youkuaiyun.com/l297969586/article/details/79140840/ labelme编译并使用: 源码:https://github.com/tfwcn/labelme 源码已改成批量转Json的文件 Logs 2018/11/8 修改成自动保存到图片目录下到json文件夹中。需预先建立文件夹。 以前用过该工具的,请先删除C:...

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

NSIS教程(2): 传统用户界面(Classic UI)

NSIS教程: 《NSIS用户手册 中文版》 《NSIS图文教程集锦 - 轻狂志》 本文以一个完整的、传统界面的网易云音乐安装包的脚本为示例,来介绍NSIS传统用户界面的开发流程。 NSIS脚本 # 单行注释用井号"#"或分号";",跨行注释用可以用C/C++中注释语法。 # 使用!define定义一些常量(如安装包的版本号等) # 对常量或变量的引用可以使用如${PROD

while(1) { smile(); } 8万+

KEPServerEX作为MQTT客户端

打开软件: 测试没有连接上MQTT代理。

低码开发 1681

MaskRCNN RPN网络分析

在每个锚生成5种大小和3种形状的候选框(每层特征对应一种大小,每个锚点对应3种形状)。并进行两层卷积后,做前景与背景的分类,与候选框的偏移量回归。与目标重叠> = 0.7则为前景,与目标重叠<= 0.3则为背景,其余框去掉。 ############################################################ # Region Propos...

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

数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 3(step by step)

第三章3-1~3-27全部习题解析和代码模块

weixin_62651190的博客 1946

jupyter 添加 Anaconda 环境

conda install notebook ipykernel # 添加环境,环境名为 py3 python -m ipykernel install --user --name py3 --display-name "Python (py3)"  

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【人工智能笔记】第四节:基于TensorFlow 2.0实现CNN-RNN目标检测网络(自定义训练过程)

该文章使用WIDER FACE素材训练,下载地址: http://shuoyang1213.me/WIDERFACE/ 例子源码: https://github.com/tfwcn/AI/blob/master/CNN/face_detection.py 这次使用的网络由Encoder(编码器)与Decoder(解码器)组成。Encoder负责图片特征提取。再由Decoder循环输出...

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【人工智能笔记】第二十七节 tensorflow 2.0 中保存模型的方式及注意事项

在 tensorflow2 中,保存模型有多种方法,方法都在tf.keras.models下面: 保存模型:save_model 或 model.save,读取模型:load_model。这里可保存成TensorFlow格式或者HDF5 文件。 只保存模型权重:model.save_weights,读取模型权重:model.load_weights。这里同样可以保存成TensorFlow格式或者HDF5 文件。 从配置读取模型结构:model.from_config(model.get_c...

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

【人工智能笔记】第八节:强化学习算法简介及DQN人工智能算法Tensorflow 2.0实现

强化学习算法 主要应用在游戏AI、自动驾驶、仿生机器人等场景。如在某个环境(游戏、驾驶路上),执行特定动作后,导致状态发生改变,产生不同结果(对应不同激励值,有正负),这种类型的场景都能使用强化学习。 其中 DQN 算法是由 Google 提出的,不久前 Google 的 AlphaGo (围棋机器人)就是由该算法演变产生。 传统强化学习方法 Q-learning Q-learning 属于 of...

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

【人工智能笔记】第十九节 efficientdet 目标检测模型,官方源码分析系列,Backbone实现细节(一)

这次是根据官方源码,分析efficientdet模型实现细节。因官方代码基于谷歌的automl框架实现,有很多选项配置,该系列基于默认配置,只关注一些实现细节,一些简单的层会粗略带过,计划分为如下章节: Backbone实现细节分析 BiFPN实现细节分析 Box与Class回归细节分析 Loss计算分析 Optimizer梯度计算分析 efficientdet模型结构如下: 代码结构如下: 对应代码位于efficientdet/keras/efficientdet_keras.py:

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

【人工智能笔记】第五节:基于TensorFlow 2.0进行股票预测(JIT与Eager双模式实现)

该模型是典型的数据预测模型。实现多参数输入含时序,预测多个结果数据。 输入维度(batch_size,历史数据长度,输入参数数量),这里取15个维度,包含:年、月、日、上证指数、深证指数与目标股票(开盘、最高、最低、收盘)*3。 输出维度(batch_size,预测数据长度,输出参数数量),这里取12个维度,包含:上证指数、深证指数与目标股票(开盘、最高、最低、收盘)*3。 训练流程,将数据...

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

【人工智能笔记】第二十四节 tensorflow 2.0 自定义模型训练流程,采用动态学习速率加快训练过程

本节介绍如何在tenserflow2.0下自定义模型训练流程。首先我们先实现一个正常的训练流程,然后再改变训练流程,加快训练收敛速度。下面分开两部分讲解。 一、正常训练流程 通过重构模型里train_step(self,data)方法,可自定义训练流程。同理重构test_step(self,data)方法,可自定义测试流程。 正常训练流程: 拆分数据,根据dataset将输入x与label拆分开。 将x输入model,正向传播,获得结果y_pred。 label与结果计算loss。 通过l..

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

【人工智能笔记】第十节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(上)

这次目标是实现指针仪表方向纠正及指针识别。这现实情况下,要做指针仪表识别,因为各种拍摄角度、光线与指针值的不同,通常需要标注大量素材,而且这种标注相对复制。因此为解决该问题,我使用了迁移学习的方法,下面将详细讲解。 这次将由三部分讲解整个过程: 搭建Django服务,利用ECharts报表生成虚拟仪表图,作为第一阶段的训练素材。 编写模型训练与识别代码,并利用虚拟图做预训练。 人手标注现实...

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

【人工智能笔记】第一节:基于Keras的seq2seq聊天机器人实现

源码:https://github.com/tfwcn/AI Word.txt为用到的字符集,本文用的只包含训练集里的字。 ai.txt为训练素材,格式:问题1\t回答1\n问题2\t回答2\n LSTM原理图: σ代表:sigmoid函数 训练过程图: 代码如下: import keras as K import matplotlib.pyplot...

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

【人工智能笔记】第二节:Mask R-CNN物体检测原理及结构分析

原论文地址:http://cn.arxiv.org/pdf/1703.06870v3 Mask R-CNN是在Faster R-CNN的物体检测基础上,增加了物体分割部分,并做了一些优化,下面会作具体描述。 下面为Faster R-CNN的网络结构图: 下面为Mask R-CNN的网络结构图: Mask R-CNN相对于Faster R-CNN改变如下: 1.使用ResNet1...

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

【人工智能笔记】第三十一节:AutoML系列,用NNI框架进行神经网络架构搜索与超参调优(一)

本章节介绍AutoML框架NNI的安装及使用方法。NNI为微软开发的AutoML框架,支持多种模型的自动调参及架构搜索等功能。

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

【人工智能笔记】第十二节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(下)

相关资料: 【人工智能笔记】第十节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(上) 【人工智能笔记】第十一节 Tensorflow 2.0 实现指针仪表方向纠正及指针识别(中) 这一节,会介绍如何使用现实素材继续训练模型,来完成真正的仪表识别。首先我们会使用标注工具对素材进行标注,然后使用实际标注素材进行训练,编写相应的训练代码。下面,我会逐步介绍如何实现。 一、使用标...

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

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 255

我用 GPUWorks 在 M1 Pro 上搭了个发票识别原型

公司里经常要看电子发票。我想先做个小原型:把 PDF 发给一个自己部署的图文模型,让它提取发票类型、日期、交易双方和金额,再把结果交给同事核对。这个原型不用先接财务系统,先看看从部署到调用要走多少步,模型返回的内容能不能帮上忙。

鸽芷咕的博客 3万+
上一篇: 【人工智能笔记】第三十三节:TF2实现VITGAN对抗生成网络,Mapping NetWork 实现
下一篇: 【人工智能笔记】第四十二节:TF2实现VITGAN对抗生成网络,PatchEmbedding 实现
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、付费专栏及课程。

余额充值