python tensorflow教程,tensorflow.python

  python tensorflow教程,tensorflow.python

  本文主要介绍python神经网络利用tensorflow实现自编码自动编码器。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010自动编码器1简介为什么要降维2。自动编码器3的原理。用python实现encode的所有代码

  

目录

 

  发现数据维度太多怎么办!没关系,我们来降低它的维度吧!

  发现降维不了怎么办!没关系,来这里看看如何自动编码。

  

学习前言

 

  

antoencoder简介

 

  随着社会的发展,越来越多的人工智能可以用来解决问题,人工智能需要处理的问题也越来越复杂。作为神经网络的输入,维数越来越大,导致了目前的“维数灾难”和“信息丰富,知识贫乏”的问题。

  维度太多并不是一件优秀的事情。维度过多也会导致训练效率低、特征提取困难等问题。如果能用优秀的方法提取特征,训练效率会大大提高。

  常见的降维方法有PCA(主成分分析)和LDA (Fisher线性判别分析)。以后我会继续写关于这两种方法的用法的博客。

  

1、为什么要降维

 

  该图是一个降维神经网络的示意图,它可以将N维数据量降低到2维数据量:

  输入和输出都是数据的原始特征。我们用tensorflow的优化器来优化w1ij和w2ji。在优化的最后,w1ij是我们将N维数据编码成2维数据的方式,w2ji是我们将2维数据解码成N维数据的方式。

  

2、antoencoder的原理

 

  def编码器(x):

  layer _ 1=TF . nn . sigmoid(TF . add(TF . mat mul(x,weights[encoder_h1]),

  偏差[encoder_b1]))

  layer _ 2=TF . nn . sigmoid(TF . add(TF . mat mul(layer _ 1,weights[encoder_h2]),

  偏差[encoder_b2]))

  layer _ 3=TF . nn . sigmoid(TF . add(TF . mat mul(layer _ 2,weights[encoder_h3]),

  偏差[encoder_b3]))

  layer _ 4=TF . add(TF . mat mul(layer _ 3,weights[encoder_h4]),

  偏差[编码器_b4])

  返回层_4

  def解码器(x):

  layer _ 1=TF . nn . sigmoid(TF . add(TF . matmul(x,weights[decoder_h1]),

  偏差[decoder_b1]))

  layer _ 2=TF . nn . sigmoid(TF . add(TF . mat mul(layer _ 1,weights[decoder_h2]),

  偏差[decoder_b2]))

  layer _ 3=TF . nn . sigmoid(TF . add(TF . mat mul(layer _ 2,weights[decoder_h3]),

  偏差[decoder_b3]))

  layer _ 4=TF . nn . sigmoid(TF . add(TF . matmu

  l(layer_3, weights[decoder_h4]),

   biases[decoder_b4]))

   return layer_4

  encoder_op = encoder(X)

  decoder_op = decoder(encoder_op)

  

  其中encode函数的输出就是编码后的结果。

  

 

  

全部代码

 

  该例子为手写体识别例子,将784维缩小为2维,并且以图像的方式显示。

  

import matplotlib.pyplot as plt

 

  实现结果为:

  

 

  可以看到实验结果分为很多个区域块,基本可以识别。

  以上就是python神经网络使用tensorflow实现自编码Autoencoder的详细内容,更多关于tensorflow自编码Autoencoder的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: