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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。