今天开始学习tensorflow框架,从极客学院下载了官方中文教程(15年翻译的),第一天开始学习第一章ng基本流程和原理,作为前奏。然后写了代码,验证一下,准确率确实非常高,非常好用。把代码上传,作为以后备用。

 import tensorflow as tf
import numpy as np
import math class Model:
def __init__(self,w = np.empty(None),b = None):
self.b = b
self.w = w def predict(self, input):
return np.dot(input,self.w) + self.b data = np.float32(np.random.rand(1000,2))
label = np.dot(data,np.array([[0.100],[0.200]])) + 0.3
m,n = data.shape num_train = int(m * 0.6)
num_validation = int(m * 0.2)
num_test = int(m * 0.2) data_train = data[:num_train,:]
data_validation = data[num_train:(num_train+num_validation),:]
data_test = data[(num_train+num_validation):,:] label_train = label[:num_train,:]
label_validation = label[num_train:(num_train+num_validation),:]
label_test = label[(num_train+num_validation):,:] w = tf.Variable(tf.random_uniform([2,1],-1.0,1.0))
b = tf.Variable(tf.zeros([1])) y_train = tf.matmul(data_train,w) + b
loss = tf.reduce_mean(tf.square(label_train - y_train))
'''
bestModel = Model()
minRMSE = (1 << 31) -1
alphas = [0.1,0.3,0.5];
iters = [100,150,200,250];
for iter in iters:
for alpha in alphas:
optimizer = tf.train.GradientDescentOptimizer(alpha)
train = optimizer.minimize(loss)
init_state = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_state)
for step in range(0,iter):
sess.run(train)
model = Model(sess.run(w),sess.run(b))
p = model.predict(data_validation)
rmse = np.sqrt(np.mean(np.square(label_validation - p)))
if rmse < minRMSE:
minRMSE = rmse
bestModel = model
np.save("E:\\Python\\models\\weights.npy",bestModel.w)
np.save("E:\\Python\\models\\b.npy",bestModel.b)
''' weights = np.load("E:\\Python\\models\\weights.npy")
b = np.load("E:\\Python\\models\\b.npy") model = Model(weights,b)
predicts = model.predict(data_test)
print(predicts)
print(label_test)
print(label_test - predicts)

tensorflow学习(一)的更多相关文章

  1. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

  2. 用tensorflow学习贝叶斯个性化排序(BPR)

    在贝叶斯个性化排序(BPR)算法小结中,我们对贝叶斯个性化排序(Bayesian Personalized Ranking, 以下简称BPR)的原理做了讨论,本文我们将从实践的角度来使用BPR做一个简 ...

  3. Tensorflow学习笔记2019.01.22

    tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...

  4. Tensorflow学习笔记2019.01.03

    tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...

  5. TensorFlow学习笔记之--[compute_gradients和apply_gradients原理浅析]

    I optimizer.minimize(loss, var_list) 我们都知道,TensorFlow为我们提供了丰富的优化函数,例如GradientDescentOptimizer.这个方法会自 ...

  6. TensorFlow学习路径【转】

    作者:黄璞链接:https://www.zhihu.com/question/41667903/answer/109611087来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. TensorFlow学习线路

    如何高效的学习 TensorFlow 代码? 或者如何掌握TensorFlow,应用到任何领域? 作者:黄璞链接:https://www.zhihu.com/question/41667903/ans ...

  8. tensorflow学习资料

    tensorflow学习资料 http://www.soku.com/search_video/q_tensorflow?f=1&kb=04112020yv41000__&_rp=1a ...

  9. 深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识

    深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识 在tf第一个例子的时候需要很多预备知识. tf基本知识 香农熵 交叉熵代价函数cross-entropy 卷积神经网络 s ...

  10. 截图:【炼数成金】深度学习框架Tensorflow学习与应用

    创建图.启动图 Shift+Tab Tab 变量介绍: F etch Feed 简单的模型构造 :线性回归 MNIST数据集 Softmax函数 非线性回归神经网络   MINIST数据集分类器简单版 ...

随机推荐

  1. 【已解决】ArcMap的界面如何恢复默认设置

    解决方案:在C盘内搜索“Normal.mxt”,将它删除,然后重启ArcMap,即可.  效果图:

  2. ArcGIS Engine开发鹰眼图的功能(基础篇)

    鹰眼是用于调节全视域范围内主地图显示范围情况的副地图.它体现了地图整体与详细局部的关系. 用户可以通过鼠标单击或者画框等动作实现鹰眼与主地图的交互情况. 鹰眼功能的原理是通过主地图窗口的地图控件和鹰眼 ...

  3. left join 左边有数据,右边无数据

     参考了链接: https://blog.csdn.net/chenjianandiyi/article/details/52402011   主要是and和where的区别:   原Sql: Con ...

  4. swiper-动态更改数据后轮播点击或拖动失效

    出现的问题: 1.swiper不能自动切换(设置了autoplay). 2.数据不匹配(需要加载的数据以改变,但是swiper里面的数据出现错误). 3.数据匹配过后,永远切换不到第一条数据. 4.根 ...

  5. Git查看某一个文件的历史提交信息

    工作中我们有时候想要查看某一个文件的历史提交版本,] 还想看都修改过那些内容,那么这两个简单的命令就会帮到你了, 话不多说,comeBaby...... 1,首先查看一个文件的历史提交信息 git l ...

  6. HBase集群环境搭建v2.0

    本文档环境基于ubuntu16.04版本,如果最终不使用SuperMap iServer 10i ,可以不配置geomesa-hbase_2.11-2.2.0-bin.tar.gz 相比1.0版本,升 ...

  7. Python学习日记(二十六) 封装和几个装饰器函数

    封装 广义上的封装,它其实是一种面向对象的思想,它能够保护代码;狭义上的封装是面向对象三大特性之一,能把属性和方法都藏起来不让人看见 私有属性 私有属性表示方式即在一个属性名前加上两个双下划线 cla ...

  8. myEclipse项目部署点击Finish按钮没反应

    -- 问题描述:myEclipse项目部署点击Finish按钮没反应. -- 问题原因:Tomcat没有不熟JDK. -- 解决办法:window->preferences->servic ...

  9. Kubernetes pod平滑迁移

    pod平滑迁移 使用到的命令 (cordon, drain, uncordon)这三个命令是正式release的1.2新加入的命令,三个命令一起介绍,是因为三个命令配合使用可以实现节点的维护.在1.2 ...

  10. iptable千万不要yum remove iptables

    iptable千万不要运行yum remove iptables,进行卸载打开linux后发现没有firewalld和iptables,建议安装firewall 命令: yum install fir ...