python實現自編碼器autoencode

2021-08-07 17:18:43 字數 2806 閱讀 6243

# -*- coding: utf-8 -*-

"""created on sun sep 3 13:48:19 2017

@author: piaodexin

"""

from __future__ import division, print_function, absolute_import

import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data

import matplotlib.pyplot as plt

import numpy as np

mnist=input_data.read_data_sets('e:\\mnist',one_hot=true)

'''定義輸入層 (28,28) =784

第一層隱含層500個

第二層100個

第三層500

輸出層784

這是因為自編碼就是希望神經網路自己學習特徵,然後再用學習到的特徵去組成原始,所以最後

輸出層是(28,28)=784

'''input_n=784

hidden1_n=500

hidden2_n=100

hidden3_n=500

output_n=784

learn_rate=0.01

batch_size=100

train_epoch=30000

x=tf.placeholder(tf.float32,[none,input_n])

y=tf.placeholder(tf.float32,[none,input_n])

weights1=tf.variable(tf.truncated_normal([input_n,hidden1_n],stddev=0.1))

bias1=tf.variable(tf.constant(0.1,shape=[hidden1_n]))

weights2=tf.variable(tf.truncated_normal([hidden1_n,hidden2_n],stddev=0.1))

bias2=tf.variable(tf.constant(0.1,shape=[hidden2_n]))

weights3=tf.variable(tf.truncated_normal([hidden2_n,hidden3_n],stddev=0.1))

bias3=tf.variable(tf.constant(0.1,shape=[hidden3_n]))

weights4=tf.variable(tf.truncated_normal([hidden3_n,output_n],stddev=0.1))

bias4=tf.variable(tf.constant(0.1,shape=[output_n]))

def get_result(x,weights1,bias1,weights2,bias2,weights3,bias3,weights4,bias4):

a1=tf.nn.sigmoid(tf.matmul(x,weights1)+bias1)

a2=tf.nn.sigmoid(tf.matmul(a1,weights2)+bias2)

a3=tf.nn.sigmoid(tf.matmul(a2,weights3)+bias3)

y_=tf.nn.sigmoid(tf.matmul(a3,weights4)+bias4)

return y_

'''當我一步一步求y_的時候,卻出現錯誤,只能用函式,不知道為什麼

深度自編碼器python實現

深度自編碼器的原理上一節已經講過,這次我們來看一下它的python 實現,這是基於mnist的自編碼實現。from future import division,print function,absolute import import tensorflow as tf import numpy a...

自編碼器(AutoEncoder

本文講述自編碼器 auto encoder,下文簡稱ae 將按照以下的思路展開講解,力圖使得初學者能看懂其中要義。目錄如下 1.ae的基本原理 2.ae的用途 3.基於mnist資料集的ae的簡單python實現 ae,是神經網路模型的一種,是一種全連線網路模型,而且進行無監督學習,下圖是簡單的ae...

自編碼器簡介

autoencoder,中文譯名自編碼器。主要用於特徵提取,可以理解為一種基於神經網路的壓縮 降維演算法,和pca等類似。自編碼器為一種有損壓縮演算法,通過壓縮 編碼 獲得資料等抽象特徵,並可以通過解壓縮 解碼 將抽象特徵盡可能地還原成原始資料。因此,根據原ppt中對自編碼器 學習使用者高度抽象的特...