#1:导入需要用到的模块
import tensorflow as tf
import tensorflow.contrib.layers as layers
from sklearn import datasets
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import  MinMaxScaler
import  pandas as pd
import seaborn as sns'''
只有一个隐藏层的多层前馈网络足以逼近任何函数
同时还可以保证很高的精度和令人满意的效果
使用MLP(多层感知机进行函数逼近,预测波士顿房价)
'''#2:加载数据集并创建Pandas数据帧来分析数据:boston = datasets.load_boston()
df = pd.DataFrame(boston.data,columns=boston.feature_names)
df['target'] = boston.target#3:了解一些数据的细节
df.describe()#4:三个参数RM,PTRATIO和LSTAT在幅度上输出之间具有大于0.5的相关性
# 将数据集分解为训练数据集和测试数据集。使用MinMaxScaler来规划数据集
#由于神经网络使用Sigmoid激活函数(Sigmoid的输出只能在0-1之间)
#所以必须对目标值进行归一化x_train,x_test,y_train,y_test = train_test_split(df[['RM','LSTAT','PTRATIO']],df[['target']],test_size=0.3,random_state=0)
#归一化数据
X_train = MinMaxScaler().fit_transform(x_train)
X_test = MinMaxScaler().fit_transform(x_test)
Y_train = MinMaxScaler().fit_transform(y_train)
Y_test = MinMaxScaler().fit_transform(y_test)#5:定义常量和超参数
m = len(X_train)
n = 3 #特征的数量
n_hidden = 20 #隐藏层神经元的数量
#超参数
batch_size = 200
eta = 0.01 #学习率
max_epoch = 1000 #最大迭代数#6:创建一个单隐藏层的多层感知机模型
def multilayer_perceptron(x):fc1 = layers.fully_connected(x,n_hidden,activation_fn=tf.nn.relu,scope='fc1')out = layers.fully_connected(fc1,1,activation_fn=tf.sigmoid,scope='out')return out
#7:声明训练数据的占位符并定义损失和优化器
x = tf.compat.v1.placeholder(tf.float32,name='X',shape=[m,n])
y = tf.compat.v1.placeholder(tf.float32,name='Y')
y_hat = multilayer_perceptron(x)
correct_prediction = tf.square(y-y_hat)
mse = tf.reduce_mean(tf.cast(correct_prediction,'float'))
train = tf.train.AdamOptimizer(learning_rate=eta).minimize(mse)#8:执行计算图
init = tf.global_variables_initializer()with tf.compat.v1.Session() as sess:sess.run(init)writer = tf.summary.FileWriter('g3',sess.graph)# 训练模型100次迭代for i in range(max_epoch):_, l,p = sess.run([train,mse,y_hat],feed_dict={x:X_train,y:Y_train})if i %100 ==0:print('Epoch {0}:Loss {1}'.format(i,l))print("Training Done")print('Optimization Finished!')
#测试模型correct_prediction = tf.square(y-y_hat)
#计算准确度accuracy = tf.reduce_mean(tf.cast(correct_prediction,'float'))print('Mean ERROR:',accuracy.eval({x:X_train,y:Y_train}))plt.scatter(Y_train,p)writer.close()

Tensorflow实现多层感知函数逼近相关推荐

  1. TensorFlow实现多层感知机函数逼近

    TensorFlow实现多层感知机函数逼近 准备工作 对于函数逼近,这里的损失函数是 MSE.输入应该归一化,隐藏层是 ReLU,输出层最好是 Sigmoid. 下面是如何使用 MLP 进行函数逼近的 ...

  2. tensorflow实例-多层感知器

    一.概念 感知器:   上图就是基本的处理元素,它具有输入.输出,每个输入关联一个连接权重,然后输出是输入的加权和. 上图就是一个单层的感知器,输入分别是X0.X1.X2,输出Y是输入的加权和: Y ...

  3. TensorFlow实现多层感知器

    #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Fri Jun 2 09:54:06 2017 ...

  4. TensorFlow 多层感知器

    本文主要介绍使用TensorFlow对多层感知器(MLP)进行编程,其他内容参考:TensorFlow 学习目录. 目录 一.多层感知器MLP 一.多层感知器MLP 多层感知器不同于CNN,CNN提取 ...

  5. Tensorflow中的多层感知器学习

    Tensorflow中的多层感知器学习 在这篇文章中,我们将了解多层感知器的概念和它在Python中使用TensorFlow库的实现. 多层感知 多层感知也被称为MLP.它是完全连接的密集层,可以将任 ...

  6. 【深度学习BookNote】多层感知器(multi-layer perceptron)

    多层感知器(multi-layer perceptron) 神经网络的变种目前有很多,如误差反向传播(Back Propagation,BP)神经网路.概率神经网络.卷积神经网络(Convolutio ...

  7. TFboy养成记 多层感知器 MLP

    内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声 ...

  8. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-多层感知器(神经网络)与激活函数概述-04

    多层感知器 计算输入特征得加权和,然后使用一个函数激活(或传递函数)计算输出. 单个神经元 多个神经元 单层神经元缺陷 多层感知器 多层感知器 激活函数 relu:曲线如下图,假如过来的函数是x当x小 ...

  9. 【TensorFlow-windows】(三) 多层感知器进行手写数字识别(mnist)

    主要内容: 1.基于多层感知器的mnist手写数字识别(代码注释) 2.该实现中的函数总结 平台: 1.windows 10 64位 2.Anaconda3-4.2.0-Windows-x86_64. ...

最新文章

  1. Windows下MySQL下载安装、配置与使用
  2. 002_centos7上安装mysql8
  3. android socket通信如何抓取,安卓Socket通信实例(客户端、服务端)
  4. Linux文件IO深入剖析
  5. “悬空指针”和“野指针”究竟是什么意思?有什么区别
  6. OpenCV | 基于OpenCV的双目图像采集源代码(相机标定)
  7. vue 保留小数点厚一位_h5上完美支持自定义输入小数点前多少位和小数点后多少位(vue)...
  8. 同一个tomcat部署多个项目导致启动失败
  9. php10天速成培训,十天学会php之第十天
  10. 电机扭矩计算机公式由来T=9950*P/
  11. python小于_删除python中小于某个值的行
  12. Linux系统安装,教你安装一个属于自己的Linux系统
  13. 拓嘉启远电商:如何提高拼多多店铺信誉
  14. python编程从入门到实践练习15-3:分子运动
  15. HADOOP读写性能测试
  16. 计算机打印设置方法,针式打印机设置教程详解,小编教你针式打印机设置共享/纸张大小方法...
  17. LTE----013 UE开机后的第一件事: PLMN选择
  18. MMA-Mathematica定义函数
  19. html5 单个按钮控制音乐播放,HTML5音频控制停止按钮(而不是暂停)
  20. 如何恢复Mac上未保存的Word文件?

热门文章

  1. 查找最接近的元素c语言,查找最接近的元素
  2. 易生信转录组培训第一期总结
  3. 不容错过!我的Mac装机软件清单,Mac新手看过来!
  4. 中国电子学会python等级考试一级
  5. Python | threading02 - 互斥锁解决多个线程之间随机调度,造成“线程不安全”的问题。
  6. C++学习之Dev-C++安装与调试
  7. ecshop使用php代码,ecshop 修改模板可输出php代码
  8. 用python编写一个点餐程序_Python写一个自动点餐程序
  9. ThinkPHP6项目基操(6.数据库Db操作)
  10. svn异地同步 linux,svn库两地开发之代码数据的同步包括***连接的全套解决方案