tensorflow拟合随机生成的三维数据【学习笔记】
平台信息:
PC:ubuntu18.04、i5、anaconda2、cuda9.0、cudnn7.0.5、tensorflow1.10、GTX1060
作者:庄泽彬(欢迎转载,请注明作者)
说明:感谢tensorflow社区,本文是在社区的学习笔记,生成随机的三维数据,之后用平面去拟合。
相关代码:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Thu Oct 11 19:54:15 2018 @author: zhuang
""" import tensorflow as tf
import numpy as np #生成随机数
x_data = np.float32(np.random.rand(2,100))
y_data = np.dot([0.100,0.200],x_data) + 0.300 # 初始化参数
b = tf.Variable(tf.zeros([1]))
# w为1x2的矩阵,在-1.0到1.0之间均匀分布
w = tf.Variable(tf.random_uniform([1,2],-1.0,1.0))
y = tf.matmul(w,x_data) + b # 使用最小化方差进行梯度下降,来不断更新参数,学习率设置为0.5
loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss) #init = tf.initialize_all_variables()
#新版本的tensorflow使用下面的接口,老版本使用上面的接口
init = tf.global_variables_initializer() sess = tf.Session()
sess.run(init) #进行拟合找到适合的参数
for step in xrange(0,201):
sess.run(train)
if (step) % 20 == 0:
print step,sess.run(w),sess.run(b)
实验结果:
runfile('/home/zhuang/project/1-AI/My_AI_Study_Project/3-tensorflow/005-test.py', wdir='/home/zhuang/project/1-AI/My_AI_Study_Project/3-tensorflow')
0 [[0.39894426 0.3333286 ]] [0.14586714]
20 [[0.16806586 0.26403958]] [0.22699882]
40 [[0.12101775 0.22725435]] [0.27309927]
60 [[0.10728491 0.21063562]] [0.28998315]
80 [[0.10265137 0.20403926]] [0.2962562]
100 [[0.10098286 0.20152006]] [0.29859895]
120 [[0.10036676 0.20057023]] [0.29947543]
140 [[0.10013718 0.20021366]] [0.29980358]
160 [[0.10005137 0.20008004]] [0.29992643]
180 [[0.10001925 0.20002998]] [0.29997244]
200 [[0.10000721 0.20001122]] [0.29998967]
我们的目标方程y_data = np.dot([0.100,0.200],x_data) + 0.300,经过200次的训练更新w,b参数为[[0.10000721 0.20001122]] [0.29998967],非常接近我们方程的参数。
tensorflow拟合随机生成的三维数据【学习笔记】的更多相关文章
- JS随机生成不重复数据的代码分享
JS随机生成不重复数据. 代码如下: <script> // 定义存放生成随机数的数组 var array=new Array(); // 循环N次生成随机数 for(var i = 0 ...
- fabric私密数据学习笔记
fabric私密数据学习笔记 私密数据分为两部分 一个是真正的key,value,它被存在 peer的私密数据库(private state)中. 另一部分为公共数据,它是真实的私密数据key,val ...
- 大数据学习笔记——Linux完整部署篇(实操部分)
Linux环境搭建完整操作流程(包含mysql的安装步骤) 从现在开始,就正式进入到大数据学习的前置工作了,即Linux的学习以及安装,作为运行大数据框架的基础环境,Linux操作系统的重要性自然不言 ...
- 大数据学习笔记——Java篇之IO
IO学习笔记整理 1. File类 1.1 File对象的三种创建方式: File对象是一个抽象的概念,只有被创建出来之后,文件或文件夹才会真正存在 注意:File对象想要创建成功,它的目录必须存在! ...
- 大数据学习笔记——Hadoop编程实战之HDFS
HDFS基本API的应用(包含IDEA的基本设置) 在上一篇博客中,本人详细地整理了如何从0搭建一个HA模式下的分布式Hadoop平台,那么,在上一篇的基础上,我们终于可以进行编程实操了,同样,在编程 ...
- 大数据学习笔记——Linux基本知识及指令(理论部分)
Linux学习笔记整理 上一篇博客中,我们详细地整理了如何从0部署一套Linux操作系统,那么这一篇就承接上篇文章,我们仔细地把Linux的一些基础知识以及常用指令(包括一小部分高级命令)做一个梳理, ...
- 大数据学习笔记——Java篇之网络编程基础
Java网络编程学习笔记 1. 网络编程基础知识 1.1 网络分层图 网络分层分为两种模型:OSI模型以及TCP/IP网络模型,前者模型分为7层,是一个理论的,参考的模型:后者为实际应用的模型,具体对 ...
- 大数据学习笔记——Java篇之集合框架(ArrayList)
Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...
- 使用Faker来随机生成接近真实数据的数据
在很多场景我们需要造一些假数据或者mock数据,如果我们写死类似[XXXX]类似的无意义的其实不是很优雅,Faker能提供常用的一些名词的随机数据. 1.引入POM: <dependency&g ...
随机推荐
- ios-Objective-C中的各种遍历(迭代)方式(转载)
iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式 说明: 1)该文简短介绍在iOS开发中遍历字典.数组和集合的几种常见方式. 2)该文对应的代码可以在下面的地址获得:https:// ...
- idea 创建的maven+spring+mybatis项目整合 报错无法创建bean
报错如下: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with n ...
- rem布局,flexible.js
//author:caibaojian //website:http://caibaojian.com //weibo:http:weibo.com/kujian //这段js的最后面有两个参数记得要 ...
- swap file "*.swp" already exists!
ll -a rm .*.swp
- 启动spark-shell
$cd /app/hadoop/spark-1.1.0/bin $spark-shell --master spark://SPARK02:7077 --executor-memory 500m 特别 ...
- 便于理解mysql内幕的各种逻辑图组
便于理解mysql内幕的各种逻辑图组 http://blog.sina.com.cn/s/blog_445e807b0101ggtl.html 以下是个人一直以来从网络等各种途径收集到的一些对理解my ...
- 002-redis-数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 使用桌面工具查看,默认有16个库,Redis支持多 ...
- 在centos7下安装svn
SVN的安装 yum install subversion 服务端命令 1. svnserver - 控制svn系统服务的启动等 2. svnadmin - 版本库的创建/导出/导入/删除等 3. s ...
- [py]python内存管理
Python深入06 Python的内存管理 堆栈内存 - 堆内存 对象一般就是开辟在堆上的结构体: 堆内存用于提供 引用数据类型存储值 对象存储的是属性名和属性值 函数存储的是函数体代码字符串 函数 ...
- liferay中如何实现自己定义的方法
大家看到这篇文章是不是很开心啊,我感觉是很开心,我们终于可以按照自己的意愿来写一次代码,在liferay中一些基本的增删改查的代码是自动生成的,然而我们想要实现自己的方法的话,恐怕要费一点劲,你要知道 ...