用tensorflow实现弹性网络回归算法


Posted in Python onJanuary 09, 2018

本文实例为大家分享了tensorflow实现弹性网络回归算法,供大家参考,具体内容如下

python代码:

#用tensorflow实现弹性网络算法(多变量) 
#使用鸢尾花数据集,后三个特征作为特征,用来预测第一个特征。 
 
 
#1 导入必要的编程库,创建计算图,加载数据集 
import matplotlib.pyplot as plt 
import tensorflow as tf 
import numpy as np 
from sklearn import datasets 
from tensorflow.python.framework import ops 
 
ops.get_default_graph() 
sess = tf.Session() 
iris = datasets.load_iris() 
 
x_vals = np.array([[x[1], x[2], x[3]] for x in iris.data]) 
y_vals = np.array([y[0] for y in iris.data]) 
 
 
#2 声明学习率,批量大小,占位符和模型变量,模型输出 
learning_rate = 0.001 
batch_size = 50 
x_data = tf.placeholder(shape=[None, 3], dtype=tf.float32) #占位符大小为3 
y_target = tf.placeholder(shape=[None, 1], dtype=tf.float32) 
A = tf.Variable(tf.random_normal(shape=[3,1])) 
b = tf.Variable(tf.random_normal(shape=[1,1])) 
model_output = tf.add(tf.matmul(x_data, A), b) 
 
 
#3 对于弹性网络回归算法,损失函数包括L1正则和L2正则 
elastic_param1 = tf.constant(1.) 
elastic_param2 = tf.constant(1.) 
l1_a_loss = tf.reduce_mean(abs(A)) 
l2_a_loss = tf.reduce_mean(tf.square(A)) 
e1_term = tf.multiply(elastic_param1, l1_a_loss) 
e2_term = tf.multiply(elastic_param2, l2_a_loss) 
loss = tf.expand_dims(tf.add(tf.add(tf.reduce_mean(tf.square(y_target - model_output)), e1_term), e2_term), 0) 
 
 
 
#4 初始化变量, 声明优化器, 然后遍历迭代运行, 训练拟合得到参数 
init = tf.global_variables_initializer() 
sess.run(init) 
my_opt = tf.train.GradientDescentOptimizer(learning_rate) 
train_step = my_opt.minimize(loss) 
 
loss_vec = [] 
for i in range(1000): 
   rand_index = np.random.choice(len(x_vals), size=batch_size) 
   rand_x = x_vals[rand_index] 
   rand_y = np.transpose([y_vals[rand_index]]) 
   sess.run(train_step, feed_dict={x_data:rand_x, y_target:rand_y}) 
   temp_loss = sess.run(loss, feed_dict={x_data:rand_x, y_target:rand_y}) 
   loss_vec.append(temp_loss) 
   if (i+1)%250 == 0: 
     print('Step#' + str(i+1) +'A = ' + str(sess.run(A)) + 'b=' + str(sess.run(b))) 
     print('Loss= ' +str(temp_loss)) 
      
 
#现在能观察到, 随着训练迭代后损失函数已收敛。 
plt.plot(loss_vec, 'k--') 
plt.title('Loss per Generation') 
plt.xlabel('Generation') 
plt.ylabel('Loss') 
plt.show()

本文参考书《Tensorflow机器学习实战指南》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python去掉字符串中重复字符的方法
Feb 27 Python
Python简单进程锁代码实例
Apr 27 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
详解python进行mp3格式判断
Dec 23 Python
django输出html内容的实例
May 27 Python
selenium python 实现基本自动化测试的示例代码
Feb 25 Python
Djang的model创建的字段和参数详解
Jul 27 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
python利用opencv实现颜色检测
Feb 23 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 #Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 #Python
Python自定义简单图轴简单实例
Jan 08 #Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 #Python
小米5s微信跳一跳小程序python源码
Jan 08 #Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 #Python
Python实现的字典值比较功能示例
Jan 08 #Python
You might like
Terran热键控制
2020/03/14 星际争霸
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
生成sessionid和随机密码的例子
2006/10/09 PHP
用PHP和ACCESS写聊天室(七)
2006/10/09 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
跟老齐学Python之折腾一下目录
2014/10/24 Python
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
将相和教学反思
2014/02/04 职场文书
学生会离职感言
2014/02/11 职场文书
作风转变心得体会
2014/09/02 职场文书
经理聘任证明
2015/03/02 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书