【自编码器】降噪自编码器实现

本文介绍了如何利用Python和Java实现降噪自编码器,这是一种常见的人工智能技术,主要用于数据压缩和特征学习。内容参考了黄文坚的《TensorFlow实战》一书及CSDN博主的文章,提供了详细的实现步骤和资源链接。
摘要由CSDN通过智能技术生成

注意:代码源自[1][2]

# 这里以最具代表性的去噪自编码器为例。
# 导入MNIST数据集
import numpy as np
import sklearn.preprocessing as prep
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
# 这里使用一种参数初始化方法xavier initialization,需要对此做好定义工作。
# Xaiver初始化器的作用就是让权重大小正好合适。
# 这里实现的是标准均匀分布的Xaiver初始化器。
def xavier_init(fan_in, fan_out, constant=1):
    """
    目的是合理初始化权重。
    参数:
    fan_in --行数;
    fan_out -- 列数;
    constant --常数权重,条件初始化范围的倍数。
    return 初始化后的权重tensor.
    """
    low = -constant * np.sqrt(6.0 / (fan_in + fan_out))
    high = constant * np.sqrt(6.0 / (fan_in + fan_out))
    return tf.random_uniform((fan_in, fan_out),
                             minval=low, maxval=high,
                             dtype=tf.float32)
# 定义一个去噪的自编码类
class AdditiveGaussianNoiseAutoencoder(object):
    """
    __init__() :构建函数;
    n_input : 输入变量数;
    n_hidden : 隐含层节点数;
    transfer_function: 隐含层激活函数,默认是softplus;
    optimizer : 优化器,默认是Adam;
    scale : 高斯噪声系数,默认是0.1;
    """
    def __init__(self, n_input, n_hidden, transfer_function=tf.nn.softplus, optimizer=tf.train.AdamOptimizer(),
             
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值