精华内容
下载资源
问答
  • 编码器

    千次阅读 多人点赞 2019-07-04 16:49:57
    编码器是一种机电装备, 可以用来测量机械运动或者目标位置。 大多数编码器都使用光学传感器来提供脉冲序列形式的电信号, 这些信号可以依次转换成运动、方向或位置信息。 编码器依运动方式可分为旋转编码器或是线性...

    编码器是一种机电装备, 可以用来测量机械运动或者目标位置。 大多数编码器都使用光学传感器来提供脉冲序列形式的电信号, 这些信号可以依次转换成运动、方向或位置信息。
    编码器依运动方式可分为旋转编码器或是线性编码器;按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式和绝对式两类。旋转编码器可以将旋转位置或旋转量转换成模拟(如模拟正交信号)或是数字(如USB、32位并行信号或是数字正交信号等)的电子信号, 一般会装在旋转对象上,如马达轴。
    旋转编码器是将轴或轴的角位置或运动转换为模拟或数字代码的装置。旋转编码器有两种类型:
    增量编码器:增量式旋转编码器仅在电机旋转时输出脉冲。 要使用增量编码器确定轴位置,您必须知道起始位置并使用外部电路来计算输出脉冲数。
    绝对编码器:绝对旋转编码器输出对应于旋转角度的数字代码。无需计算脉冲来了解电机轴的位置。您只需要读取编码器的数字输出。
    线性编码器是与编码位置的刻度相关联的传感器,传感器或读头。传感器读取刻度并将位置转换为模拟或数字信号,并转换为数字读数。运动取决于位置随时间的变化。
    旋转编码器可以用来测量轴的旋转运动。下图1显示了旋转编码器的基本组成部分, 包括一个发光二极管(LED)、一个码盘以及码盘背面的一个光传感器。这个码盘安置在旋转轴上,上面按一定编码形式排列着不透光和透光的扇形区域。当码盘转动时,不透光扇区能够挡光线, 而透光扇区则允许光线透过。 这样就产生了方波脉冲, 可以编译成相应的位置或运动信息。
    编码器每转通常分为100到6000个扇区。这就表明,100个扇区的编码器可以提供3.6度的精度,而6000个扇区的编码器则可以提供0.06度的精度。
    在这里插入图片描述
    图1 光电编码器的基本组成
    以上是编码器的基本知识。接下来讲一下和正交编码有关的一些知识。话不多说,先上图。增量编码器的正交输出如图2所示。
    在这里插入图片描述
    图2 增量编码器的正交输出
    正交编码是一种增量信号(增量信号如下所述)。增量编码器转动后即可产生两种方波输出A和B;这些信号共同构成了增量编码器的正交输出。对于多数编码器而言,这些方波A和B均失相90度。通过观察A和B输出不断变化的状态,编码器的方向得以确定。有两个通道:通道A和通道B。
    当通道A的阅读器经过编码器盘上的亮区时,它会在通道A上生成方波脉冲。编码器轮或阅读器上的区域稍微偏移,因此通道B的阅读器将检测90°的图案,通过读取脉冲数和哪个通道在另一个之前(称为“前导”),编码器接口可以判断编码器旋转了多远,以及在哪个方向上。某些编码器还有第三个通道称为索引通道,每完成一次旋转就发送一次脉冲。这允许编码器知道其实际位置而不是其相对位置,如绝对编码器,而不会产生太多的额外成本。您可以检查编码器的数据表,看它是否有索引通道。如图3所示,为典型编码器方波输出。图中,A前导于B为顺时针旋转,B前导于A为顺时针旋转。
    在这里插入图片描述
    图3 典型编码器方波输出
    然而,要确定编码器的行程距离或其旋转速度,则需要提供更多信息。要计算这些信息,就务必要了解编码器的分辨率。可以将分辨率想象成编码器的粒度,或者简单点说,就是每转可将编码器这个大饼分成多少块。
    每转脉冲数(PPR)
    PPR(或每转脉冲数)这一术语表示编码器的分辨率。PPR描述了编码器每转的方波输出A或B上出现的高脉冲数。一旦获知分辨率,就能将其用于计算各脉冲和周期相当于多少几何角度。如图4所示。
    在这里插入图片描述
    图4 编码器的分辨率
    编码类型
    编码器总共有三种基本的编码类型:X1、 X2 和 X4。
    X1 编码
    如图5,显示了一个正交周期及其相应的X1编码类型下的计数值的加减数目。当通道A引导通道B时,增量发生在通道A的上升沿。当通道B引导通道A时,减量发生在通道A的下降沿。
    在这里插入图片描述
    图5 X1编码
    X2编码
    X2编码与上述过程类似,只是计数器在A通道的每个边沿计数是增加还是减少,取决于由哪个通道引导哪个通道。计数器的数值每个周期都会增加2个或减少2个,如图6所示。
    在这里插入图片描述
    图6 X2编码
    X4编码
    X4编码模式下,计数器同样也在通道A和B的每个沿上发生增加或者减少。 计数器的数目是增加还是减少,取决于哪个通道引导哪个通道。计数器的数目在每个周期都会增加4个或减少4个,如图7所示。
    在这里插入图片描述
    图7 X4编码
    每转计数(CPR)
    CPR最常代表每转计数,并且是指存在于A和B两个输出之间的正交解码状态的数量。在A和B两个输出于高电平和低电平之间进行切换时,会出现2位的信息,表示4种不同的状态。术语正交解码描述了同时使用输出A和B计数每个状态变化的方法。结果是每个脉冲或周期的计数量的4倍。因此,编码器的CPR就是编码器的PPR乘以4。还要注意的是,有些编码器制造商采用CPR这一缩略语表示每转循环数(每转周期数)。每转循环数表示任何一个编码器输出的完整电气周期或用时,且该值等于每转脉冲数。鉴于每转计数和每转循环数均采用CPR这一相同缩略语,因而必须仔细理解分辨率的定义方式。图8为常见产品波形图。
    在这里插入图片描述
    图8 常见产品波形图
    公式:
    1、编码器 CPR 频率与电机速度(RPM) 之间的关系由下式给出:
    f=(周期/转)*(转/秒)/1000=kHz
    转速=每分钟转数
    CPR =每转周期数
    2、距离转换:
    (PPR) /(2 * pi *轴半径) =每英寸脉冲数
    (每英寸脉冲数 ^-1 =每脉冲英寸数

    展开全文
  • 对象编码

    千次阅读 2012-08-23 10:02:54
    对象编码对象的类特征以及对象状态转化某种格式,这种格式可存储,也可进程间传递。类的类型以及实例数据会被写入到某种字节流里面,当程序结束的时候,该字节流可进行持久化。程序启动的时候,新分配对象可以...

    对象编码把对象的类特征以及对象状态转化某种格式,这种格式可存储,也可在进程间传递。类的类型以及实例数据会被写入到某种字节流里面,当程序结束的时候,该字节流可进行持久化。程序启动的时候,新分配对象可以解码之前保存的自身描述,然后把自己恢复到之前运行时的状态。编码通常需和归档协作。归档将对象图转化成一种可以写进文件系统的格式(档案),解档则是在档案上执行操作。在此过程中,保存在档案的对象对需要自身进行解码。

    对象编码也被Mac OS X 系统的分布式对象API用于进程间传输对象。但是归档用得最为普遍,归档和属性表相似,也是一种对象持久化机制。

    Object encoding

    如何编码解码对象

    如果您期望子类实例能够进行编解码,则子类应遵循NSCoding 协议并实现 initWithCoder:以及encodeWithCoder:方法,这些方法会在程序归解档某个对象图的时候被调用。在encodeWithCoder:方法中,我们会编码对象的重要实例变量,而在initWithCoder:方法中,我们则会解码这些值,并将它们重新赋给实例变量。initWithCoder:消息不会触发对象的初始化方法。

    initWithCoder:方法和encodeWithCoder:方法都只需要一个NSCoder 对象作为参数,该对象用于执行实际的编解码动作。NSCoder是个抽象类,大部分情况下,编解码对象是下述具体子类的实例:NSKeyedArchiver, NSKeyedUnarchiver, NSArchiver, NSUnarchiver。归档类声明编码对象实例变量的方法,解档类则声明解码实例变量的方法。

    NSCoder方法可作用于对象、标量、C数组、结构体、字符串以及指向这些类型的指针。编码自有类实例变量之前,请您务必要先调用超类的initWithCoder:或者encodeWithCoder:实现。当您从字节流解码对象时,也务必要先保持或复制这些对象,然后再把解码出来的值赋给其实例变量。

    键归档和顺序归档

    NSCoder有两个具体子类,二者各自使用不同的基本实现方式。“键”归档类(NSKeyedArchiverNSKeyedUnarchiver)将一个编码值和一个字符串键关联在一起。解码的时候 ,键值之间的关联保持 一致。因此, 实例变量可按任意的次序编解码。如使用另一种类型的编解码器(NSKeyedUnarchiverNSUnarchiver),您需要以某种次序编码实例变量。解码的时候,您仍要使用相同的次序。顺序编解码器只应在遗留代码里面才能使用,新的子类都应使用键归档编解码器。


    展开全文
  • DL入门(2):自编码器(AutoEncoder)

    万次阅读 2021-01-17 13:02:49
    简单叙述普通自编码器、堆叠自编码器、稀疏自编码器、降噪自编码器的原理及应用。

      写在前面:看预测论文综述时,面临这样一个问题:很多DL的方法只是会简单运用,却不是特别了解其详细原理,故针对CNN、RNN、LSTM、AutoEncoder、RBM、DBN以及DBM分别做一些简单总结,以达到了解的目的,此篇为AutoEncoder。

    1.大致了解

    1.1 原理

      自动编码器是一种无监督的数据维度压缩和数据特征表达方法。在大部分提到自动编码器的场合,压缩和解压缩的函数是通过神经网络实现的。
      一个简单的自编码器结构如下所示:
    在这里插入图片描述
    可以看到上述结构只有一个隐藏层,从输入到隐藏层即为Encoder(编码器),从隐藏层到输出即为Decoder(解码器)。
      一提到降维,首先想到的肯定是主成分分析(PCA),PCA具体原理可以参考:降维基础知识(样本均值、样本方差、中心矩阵)与PCA(最大投影方差,最小重构代价,SVD分解)
      那么自编码器这么简单的结构如何达到降维的目的呢?我们知道,一个最简单的自编码器(上图所示)只有三层结构,编码器将输入进行编码,变成中间结果,中间结果再经过解码器还原,这种输入等于输出的结构没有什么实际意义。对于上述结构,如果我们只看左边部分,即编码器的部分,就很容易理解降维的原理:隐藏层神经元的数目远低于输入层,那么我们就可以用更少的特征(神经元)去表征输入数据,从而到降维目的。

    1.2 结构

    在这里插入图片描述
    对于样本x,自编码器的中间隐藏层的活性值为x的编码,即:
    在这里插入图片描述
    自编码器的输出为重构的数据:
    在这里插入图片描述
    其中,W(1),W(2),b(1),b(2)W^{(1)}, W^{(2)}, b^{(1)}, b^{(2)}是自编码器网络的参数,参数经梯度下降训练得到。
      因此,搭建一个自编码器需要以下几个步骤:

    1. 搭建编码器
    2. 搭建解码器
    3. 设定一个损失函数
    4. 训练

    2.自编码器分类

    2.1 普通自编码器

    输入和输出完全相同,即上面提到的这种。

    2.2 堆叠自编码器

      对于很多数据来说, 仅使用两层神经网络的自编码器还不足以获取一种好的数据表示。为了获取更好的数据表示, 我们可以使用更深层的神经网络。深层神经网络作为自编码器提取的数据表示一般会更加抽象, 能够更好地捕捉到数据的语义信息。
      在实践中经常使用逐层堆叠的方式来训练一个深层的自编码器,称为堆叠自编码器(Stacked Auto-Encoder, SAE)。堆叠自编码器一般可以采用逐层训练(Layer-Wise Training)来学习网络参数。
      举一个具体的例子:
    在这里插入图片描述
      可以看到,相比于普通的自编码器,我们将隐藏层的个数从1增加到3,其实就是三个普通自编码器堆叠而成。
    训练过程如下:

    1. 第一个自编码器:784->1000->784。训练完毕后,固定参数和中间隐层的结果,去掉输出层和相应的权值偏置,然后将隐藏层1000作为第二个自编码器的输入。
    2. 第二个自编码器:1000->1000->1000。训练完毕后,固定参数和中间隐层的结果,去掉输出层和相应的权值偏置,然后再将隐藏层1000作为第三个自编码器的输入。
    3. 第三个自编码器:1000->500->1000。训练完毕后,固定参数和中间隐层的结果,去掉输出层和相应的权值偏置。
    4. 在第三个自编码器隐藏层后面加一个分类器(softmax),进行解码恢复。

      三个自编码器训练完毕后,最后要进行的是整体的反向调优训练,即整体网络使用反向传播进行训练,对参数进行微调。

    2.3 降噪自编码器

      我们使用自编码器是为了得到有效的数据表示, 而有效的数据表示除了具有最小重构错误或稀疏性等性质之外,还可以要求其具备其他性质,比如对数据部分损坏(Partial Destruction)的鲁棒性。高维数据(比如图像)一般都具有一定的信息冗余,比如我们可以根据一张部分破损的图像联想出其完整内容。因此, 我们希望自编码器也能够从部分损坏的数据中得到有效的数据表示, 并能够恢复出完整的原始信息,降噪自编码器便应运而生。
      降噪自编码器(Denoising Auto-Encoder)就是一种通过引入噪声来增加编码鲁棒性的自编码器。

    工作原理
      对于一个向量xx,我们首先根据一个比例μ\mu将x的某些维度设置为0,得到一个被损坏的向量x^\hat{x},要注意,损坏比例一般不超过0.5,另外,也可通过引入高斯噪声来损坏数据。
      我们把损坏的数据x^\hat{x}送给自编码器的输入端,并要求它通过编码+解码两个步骤重构出无损的原始输入。那么当输入一个没有经过损坏的数据时,我们就能将其恢复到更理想的状态。
      因此,降噪自编码器的思想十分简单, 通过引入噪声来学习更鲁棒性的数据编码,并提高模型的泛化能力。
    在这里插入图片描述

    2.3 稀疏自编码器

      一般来说,自编码器的隐层节点数小于输入层的节点数,比如前面所述,为了达到降维的目的,一般使隐藏层神经元个数小于输入层神经元个数。但假设我们并不限制隐藏层神经元个数,而是限制了其中一部分神经元的活性,如下所示:
    在这里插入图片描述
    隐藏层中,浅蓝色的神经元被抑制了活性。
      稀疏自编码器的目标函数中我们加入了一个正则化项,用于防止过拟合,如下所示:
    在这里插入图片描述
      其中Z= [z(1), ⋯ , z(N)]表示所有训练样本的编码,ρ(Z)\rho(Z)为稀疏性度量函数,𝑾表示自编码器中的参数。
      一般而言,我们不会指定隐层表达h中哪些节点是被抑制的,而是指定一个稀疏性参数ρ,代表隐藏神经元的平均活跃程度(在训练集上取平均)。比如,当ρ=0.05时,可以认为隐层节点在95%的时间里都是被抑制的,只有5%的机会被激活。

    2.4 欠完备自编码器

      欠完备自编码器为了得到有用信息,会限制编码维度小于输入维度,因为隐层编码维数小于输入维数,可以学习数据分布中最显著的特征。
      但是,若中间隐层单元数特别少,则其表达信息有限,会导致重构过程比较困难。

    3 损失函数的设计

    3.1 普通自编码器

      普通自编码器训练目的就是为了使得输入等于输出,因此,损失函数loss可以设计如下:
    在这里插入图片描述
    公式中各项意义一目了然,不再解释。

    3.2 稀疏自编码器

      给自编码器中隐藏层单元加上稀疏性限制,在学习的过程中,均方误差可能变得很小,这样会导过拟合,而我们期望的是一个泛化能力很强的编码器,所以我们加入L1正则化来抑制过拟合。
      目标函数设计如下:
    在这里插入图片描述
    最后一项为正则化项,中间为稀疏操作。

    展开全文
  • 当它们体系结构中有隐藏层时,它们被称为深度自编码器。这些模型可以应用于包括图像重建在内的各种应用。 图像重建,他们学习输入图像模式的表示,并重建与原始输入图像模式匹配的新图像。图像重建许多...

    作者|DR. VAIBHAV KUMAR 编译|VK 来源|Analytics In Diamag

    人工神经网络有许多流行的变体,可用于有监督和无监督学习问题。自编码器也是神经网络的一个变种,主要用于无监督学习问题。

    当它们在体系结构中有多个隐藏层时,它们被称为深度自编码器。这些模型可以应用于包括图像重建在内的各种应用。

    在图像重建中,他们学习输入图像模式的表示,并重建与原始输入图像模式匹配的新图像。图像重建有许多重要的应用,特别是在医学领域,需要从现有的不完整或有噪声的图像中提取解码后的无噪声图像。

    在本文中,我们将演示在PyTorch中实现用于重建图像的深度自编码器。该深度学习模型将以MNIST手写数字为训练对象,在学习输入图像的表示后重建数字图像。

    自编码器

    自编码器是人工神经网络的变体,通常用于以无监督的方式学习有效的数据编码。

    他们通常在一个表示学习方案中学习,在那里他们学习一组数据的编码。网络通过学习输入数据的表示,以非常相似的方式重建输入数据。自编码器的基本结构如下所示。

    该体系结构通常包括输入层、输出层和连接输入和输出层的一个或多个隐藏层。输出层与输入层具有相同数量的节点,因为它要重新构造输入。

    在它的一般形式中,只有一个隐藏层,但在深度自动编码器的情况下,有多个隐藏层。这种深度的增加减少了表示某些函数的计算成本,也减少了学习某些函数所需的训练数据量。其应用领域包括异常检测、图像处理、信息检索、药物发现等。

    在PyTorch中实现深度自编码器

    首先,我们将导入所有必需的库。

    import os
    import torch 
    import torchvision
    import torch.nn as nn
    import torchvision.transforms as transforms
    import torch.optim as optim
    import matplotlib.pyplot as plt
    import torch.nn.functional as F
    from torchvision import datasets
    from torch.utils.data import DataLoader
    from torchvision.utils import save_image
    from PIL import Image

    现在,我们将定义超参数的值。

    Epochs = 100
    Lr_Rate = 1e-3
    Batch_Size = 128

    以下函数将用于PyTorch模型所需的图像转换。

    transform = transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize((0.5,), (0.5,))
    ])

    使用下面的代码片段,我们将下载MNIST手写数字数据集,并为进一步处理做好准备。

    train_set = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
    test_set = datasets.MNIST(root='./data', train=False, download=True, transform=transform)
    
    train_loader = DataLoader(train_set, Batch_Size=Batch_Size, shuffle=True)
    test_loader = DataLoader(test_set, Batch_Size=Batch_Size, shuffle=True)

    让我们看看关于训练数据及其类的一些信息。

    print(train_set)

    print(train_set.classes)

    在下一步中,我们将定义用于定义模型的Autoencoder类。

    class Autoencoder(nn.Module):
        def __init__(self):
            super(Autoencoder, self).__init__()
    
            #编码器
            self.enc1 = nn.Linear(in_features=784, out_features=256) # Input image (28*28 = 784)
            self.enc2 = nn.Linear(in_features=256, out_features=128)
            self.enc3 = nn.Linear(in_features=128, out_features=64)
            self.enc4 = nn.Linear(in_features=64, out_features=32)
            self.enc5 = nn.Linear(in_features=32, out_features=16)
    
            #解码器 
            self.dec1 = nn.Linear(in_features=16, out_features=32)
            self.dec2 = nn.Linear(in_features=32, out_features=64)
            self.dec3 = nn.Linear(in_features=64, out_features=128)
            self.dec4 = nn.Linear(in_features=128, out_features=256)
            self.dec5 = nn.Linear(in_features=256, out_features=784) # Output image (28*28 = 784)
    
        def forward(self, x):
            x = F.relu(self.enc1(x))
            x = F.relu(self.enc2(x))
            x = F.relu(self.enc3(x))
            x = F.relu(self.enc4(x))
            x = F.relu(self.enc5(x))
    
            x = F.relu(self.dec1(x))
            x = F.relu(self.dec2(x))
            x = F.relu(self.dec3(x))
            x = F.relu(self.dec4(x))
            x = F.relu(self.dec5(x))
    
            return x

    现在,我们将创建Autoencoder模型作为上面定义的Autoencoder类的一个对象。

    model = Autoencoder()
    print(model)

    现在,我们将定义损失函数和优化方法。

    criterion = nn.MSELoss()
    optimizer = optim.Adam(net.parameters(), lr=Lr_Rate)

    以下函数将启用CUDA环境。

    def get_device():
        if torch.cuda.is_available():
            device = 'cuda:0'
        else:
            device = 'cpu'
        return device

    下面的函数将创建一个目录来保存结果。

    def make_dir():
        image_dir = 'MNIST_Out_Images'
        if not os.path.exists(image_dir):
            os.makedirs(image_dir)

    使用下面的函数,我们将保存模型生成的重建图像。

    def save_decod_img(img, epoch):
        img = img.view(img.size(0), 1, 28, 28)
        save_image(img, './MNIST_Out_Images/Autoencoder_image{}.png'.format(epoch))

    将调用下面的函数来训练模型。

    def training(model, train_loader, Epochs):
        train_loss = []
        for epoch in range(Epochs):
            running_loss = 0.0
            for data in train_loader:
                img, _ = data
                img = img.to(device)
                img = img.view(img.size(0), -1)
                optimizer.zero_grad()
                outputs = model(img)
                loss = criterion(outputs, img)
                loss.backward()
                optimizer.step()
                running_loss += loss.item()
    
            loss = running_loss / len(train_loader)
            train_loss.append(loss)
            print('Epoch {} of {}, Train Loss: {:.3f}'.format(
                epoch+1, Epochs, loss))
    
            if epoch % 5 == 0:
                save_decod_img(outputs.cpu().data, epoch)
    
        return train_loss

    以下函数将对训练后的模型进行图像重建测试。

    def test_image_reconstruct(model, test_loader):
         for batch in test_loader:
            img, _ = batch
            img = img.to(device)
            img = img.view(img.size(0), -1)
            outputs = model(img)
            outputs = outputs.view(outputs.size(0), 1, 28, 28).cpu().data
            save_image(outputs, 'MNIST_reconstruction.png')
            break

    在训练之前,模型将被推送到CUDA环境中,并使用上面定义的函数创建目录来保存结果图像。

    device = get_device()
    model.to(device)
    make_dir()

    现在,将对模型进行训练。

    train_loss = training(model, train_loader, Epochs)

    训练成功后,我们将在训练中可视化损失。

    plt.figure()
    plt.plot(train_loss)
    plt.title('Train Loss')
    plt.xlabel('Epochs')
    plt.ylabel('Loss')
    plt.savefig('deep_ae_mnist_loss.png')

    我们将可视化训练期间保存的一些图像。

    Image.open('/content/MNIST_Out_Images/Autoencoder_image0.png')

    Image.open('/content/MNIST_Out_Images/Autoencoder_image50.png')

    Image.open('/content/MNIST_Out_Images/Autoencoder_image95.png')

    在最后一步,我们将测试我们的自编码器模型来重建图像。

    test_image_reconstruct(model, testloader)
    
    Image.open('/content/MNIST_reconstruction.png')

    所以,我们可以看到,自训练过程开始时,自编码器模型就开始重建图像。第一个epoch以后,重建的质量不是很好,直到50 epoch后才得到改进。

    经过完整的训练,我们可以看到,在95 epoch以后生成的图像和测试中,它可以构造出与原始输入图像非常匹配的图像。

    我们根据loss值,可以知道epoch可以设置100或200。

    经过长时间的训练,有望获得更清晰的重建图像。然而,通过这个演示,我们可以理解如何在PyTorch中实现用于图像重建的深度自编码器。

    参考文献:

    1. Sovit Ranjan Rath, “Implementing Deep Autoencoder in PyTorch”
    2. Abien Fred Agarap, “Implementing an Autoencoder in PyTorch”
    3. Reyhane Askari, “Auto Encoders”

    原文链接:https://analyticsindiamag.com/hands-on-guide-to-implement-deep-autoencoder-in-pytorch-for-image-reconstruction/

    欢迎关注磐创AI博客站: http://panchuang.net/

    sklearn机器学习中文官方文档: http://sklearn123.com/

    欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/

    展开全文
  • 据图可以看出,连接器接线上,绝对值编码器与增量型编码器几乎相同,指示绝对值编码器多了BATT+与BATT-,这...这样,当停电后,编码器不能任何的移动,当来电工作时,编码器输出脉冲过程,也不能干扰而丢失...
  • 作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 生成对抗网络(GAN)最近已经成为了一非常受...GAN 最重要的一组成部分是自动编码器。自动编码器是具有两部分的神经网络架构:输入编码器...
  • 网上看了三天的python2的编码问题,从最初的晕晕乎乎到后来的彻底晕倒又到后来的明了,如果这篇文章有幸被你读到了,希望没能误导你
  • 什么是自动编码器?   自动编码器是重建输入的绝佳工具。简单来说,机器就是一图像,可以生成一密切相关的图片。这种神经网络的输入是未标记的,这意味着网络能够没有监督的情况下进行学习。更准确地说,...
  • 5. 编码器与PID控制

    千次阅读 多人点赞 2017-12-11 13:08:33
    常见的编码器有增量式编码器和绝对式编码器。绝对式编码器绝对式编码器通过对码盘上的各个位置设计特定的编码,可以输出转动轴的绝对位置信息。 增量式编码器增量式编码器无法直接得到轴的绝对位置信息。对于轴的每...
  • Pytorch实现自编码器

    千次阅读 2020-02-26 09:08:22
    什么是编码器 一中数据压缩的、降维的意思 举例子来说明,同一张图片,高清的和标清的我们都能识别出图片的内容(这里就考虑识别这一需求,其他需求暂不考虑),这是因为即使是标清的图片,也保留了进行...
  • 编码器基本原理 自编码器(Autoencoder,AE)是一类半监督学习和非监督学习使用的人工神经网络,其功能是通过将输入信息...一自动编码器对象包含一自动编码器网络,该网络由一个编码器和一解码器组成。 编
  • 自动编码器

    万次阅读 2017-05-24 09:32:53
    自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层...
  • 浅析HEVC/H.265编码器中的熵编码

    千次阅读 2020-03-29 21:57:18
    保证视频图像质量的前提下,HEVC通过增加一定的计算复杂度,可以实现码流H.264/AVC的基础上降低50%。为了实现目标,HEVC采用了一些全新的编码技术,比如:基于LCU(Largest Coding Unit)和四叉树(Quad Tree)...
  • php编码解码json对象

    千次阅读 2016-04-19 15:04:55
    JSON是轻量级的文本数据交换格式,类似与XML,接触微信公众平台开发和自己写给妹子的订阅号上,认识到了JSON的方便,比如获取天气,就需要用到JSON进行数据格式转化。 JSON(JavaScript Object Notation)全称为...
  • Train Autoencoder with Specified Options使用指定选项训练自动编码器 以下代码实现的功能与前一段的相同,只是trainAutoencoder函数加入了几名称-值对参数,设置了网络训练的参数。包括:隐含层(编码器)...
  • Java NIO之Charset类字符编码对象

    万次阅读 2016-08-04 21:54:30
    Charset类字符编码对象介绍java使用Charset来表示编码对象This class defines methods for creating decoders and encoders and for retrieving the various names associated with a charset. Instances of this...
  • % 标签编码的输出是cat层的两输入之一 analyzeNetwork(lgraphDiscriminator) % 分析整个编码器网络 2.4.Construct decoder ([i], [j], [k] and [l]) 此演示,我使用ReLu层进行激活,但Leaky ReLu倾向于GAN...
  • (四)tensorflow2.0 - 实战稀疏自动编码器SAE

    千次阅读 热门讨论 2020-02-03 13:13:55
    前文已经介绍完了tensorflow2.0自定义layer、model、loss function,本文将结合前述知识,搭建一稀疏自动编码器SAE。 先简单介绍稀疏自动编码器SAE,其架构...普通自动编码器中,往往要求隐藏层元素数要比输...
  • 1TensorFlow实现自编码器-1.2TensorFlow实现降噪自动编码器设计计算图参考: http://blog.csdn.net/hwang4_12/article/details/62890569Denoising AutoEncoders降噪自动编码器: 降噪自动编码器DA是自动编码器的...
  • 将XML的Document对象转换为UTF-8编码的字符串时,通过UE查看UTF-8编码的内容时,时不时的会有些中文出现乱码变成其它字,大部分中文是正常的。也不是所有中文的情况都会出现这样的情况,只有少数情况会出现这样的...
  • 像任何其他自动编码器架构一样,它个编码器和一解码器。编码器部分试图学习q_φ(z | x),相当于学习数据的隐藏表示x或者x编码到隐藏的(概率编码器)表示。解码器部分试图学习P_θ(X | z)解码隐藏表示输入空间
  • 网上看了三天的python2的编码问题,从最初的晕晕乎乎到后来的彻底晕倒 ( 毕竟写博客的人不一定理解,理解的不一定写的对,写的对的不一定表达的清楚 ) 又到后来的明了,如果这篇文章有幸被你读到了,希望没能误导...
  • 视频编码器工作流程

    千次阅读 2018-05-28 23:29:36
    为甚要有编码器的存在?随着市场的需求,尽可能低的存储情况下,获得好的图像质量和低宽带图像快速的传输...对视频进行压缩...c.编码器的输入和输出是什么?输入:一帧帧的图像(包括各种格式),编码器寄存器的...
  • 人类获取的信息70%来自于视觉,视频信息多媒体信息占有重要地位;同时视频数据冗余度最大,经压缩处理后的视频质量高低是决定多媒体服务质量的关键因素。因此数字视频技术是多媒体应用的核心技术,对...
  • Tensorflow——去噪自编码器

    千次阅读 2017-10-25 11:01:35
    TensorFlow实现自编码器 深度学习,自编码器是一种非常有用的无监督学习模型。
  • 卷积编码器的简单实现前言一周前,通信编码老师布置下一任务——用C/C++实现卷积编码器,于是乎经过一星期断断续续的思考和码字,也是成功的linux下实现了。下面我将一些思路及关键点进行阐述和讲解,望各位...
  • Feign 的编码器、解码器和客户端都是支持自定义扩展,可以对请求以及结果和发起请求的过程进行自定义实现,Feign 默认支持 JSON 格式的编码器和解码器,如果希望支持其他的或者自定义格式就需要编写自己的编码器和...
  • HM编码器代码阅读(12)——CU编码

    万次阅读 2016-04-14 16:28:03
    xCompressCU是一递归函数,对于每一CU,该函数都会被调用,主要是计算当前CU编码之后代价,然后再计算当前CU的每一子CU编码后的代价,和当前CU的编码代价相比较,用来决定是否对当前CU进行分割。 详细流程: ...
  • 从零上手变分自编码器(VAE)

    千次阅读 2018-09-27 10:14:24
    原文链接:从零上手变分自编码器(VAE) Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013. Rezende D J, Mohamed S, Wierstra D. Stochasti...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 485,637
精华内容 194,254
关键字:

在编码器中有50个编码对象