[关闭]
@linux1s1s 2017-08-28T11:07:21.000000Z 字数 5061 阅读 2136

TensorFlow 教程入门

Machine-Learning 2017-08


前一节TensorFlow cpu only 安装记录完成,接下来带你尝鲜TensorFlow,本文也是学习TensorFlow的入门文章。

运行环境:PyCharm
类库: numpy tensorflow
OS: Ubuntu 16.0.4

栗子的简要说明:

求拟合曲线,y = w1 * x1 + w2 * x2 + b ===>>> y = wx +b (y、w行向量,x
为x1 x2组成的数组)

上面的栗子可以简单的归结为:求权重向量w和截距常数b

完整栗子

  1. # -*- coding:gb18030 -*-
  2. import numpy as np
  3. import tensorflow as tf
  4. # 使用 NumPy 生成假数据(phony data), 总共 100 个点
  5. x_data = np.float32(np.random.rand(2, 100))
  6. y_data = np.dot([0.100, 0.200], x_data) + 0.300
  7. print x_data # 元素是从0到1之间到自然数组成到2*100数组
  8. print "=========================================="
  9. print y_data # (0.100 0.200)这个数组是1*2到数组,然后点乘2*100数组,得到1*100数组,这个数组其实就是行向量
  10. # 构造一个线性模型
  11. b = tf.Variable(tf.zeros([1])) # 生成所有元素都是0到数组,维数为1*1
  12. w = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0)) # 生成1*2数组,范围从-1到1
  13. y = tf.matmul(w, x_data) + b # matmul : Multiplies matrix `a` by matrix `b`, producing `a` * `b`. 完成w点乘x_data
  14. # 最小化方差
  15. loss = tf.reduce_mean(tf.square(y - y_data)) # reduce_mean : 完成求平均值,損失函數,即求方差
  16. optimizer = tf.train.GradientDescentOptimizer(
  17. 0.5) # Optimizer that implements the gradient descent algorithm. 优化的梯度下降算法
  18. train = optimizer.minimize(loss)
  19. # 初始化变量
  20. init = tf.global_variables_initializer() # TensorFlow 全局初始化变量
  21. # 启动图 (graph)
  22. with tf.Session() as s:
  23. s.run(init)
  24. # 拟合平面
  25. for step in xrange(0, 201):
  26. s.run(train)
  27. if step % 20 == 0:
  28. print step, s.run(w), s.run(b) # 将打印出学习步数,w的值,b的值
  29. s.close()

运行结果

  1. /usr/bin/python2.7 /home/zyl-ai/workspace/helloPy/tensorflowProf4.py
  2. [[ 0.69691771 0.90084547 0.27959362 0.34221876 0.19552153 0.4307428
  3. 0.38117537 0.51119637 0.73647881 0.97722107 0.56137401 0.99700052
  4. 0.28862211 0.20491832 0.22333002 0.73179799 0.18757772 0.02784749
  5. 0.82264501 0.94203383 0.96716905 0.88041455 0.96700621 0.24717875
  6. 0.57799053 0.52826047 0.50474381 0.10885102 0.13200606 0.77814502
  7. 0.98665661 0.38291314 0.58590317 0.72920609 0.82347041 0.78729755
  8. 0.41934684 0.72114462 0.19211003 0.22703528 0.89434481 0.08553855
  9. 0.24389517 0.51333666 0.28480646 0.33580768 0.7284947 0.71873719
  10. 0.27972257 0.15386614 0.73494393 0.24989586 0.4692221 0.7170316
  11. 0.7909314 0.20893854 0.99824864 0.84300399 0.13301195 0.4855516
  12. 0.20430492 0.86111021 0.24074088 0.24305044 0.78865021 0.98579538
  13. 0.35449961 0.38192883 0.61099184 0.17600653 0.26319867 0.49845859
  14. 0.31929463 0.71052152 0.50170356 0.78615308 0.46412373 0.47416937
  15. 0.07297904 0.48616529 0.1963145 0.23710462 0.59903282 0.4258056
  16. 0.89570701 0.3185131 0.62712681 0.34775648 0.20015973 0.16079451
  17. 0.52140051 0.73232579 0.19221835 0.94783974 0.59515399 0.65783632
  18. 0.86610734 0.42973098 0.32846236 0.21681556]
  19. [ 0.68703651 0.50859827 0.83003438 0.48162606 0.9932605 0.95521986
  20. 0.15459256 0.73663855 0.76626265 0.8708542 0.48917714 0.41975257
  21. 0.80114317 0.54009885 0.76583833 0.93792844 0.21421161 0.58028859
  22. 0.55490202 0.70533133 0.19701815 0.44978765 0.28408217 0.15471935
  23. 0.10218457 0.84436542 0.59460068 0.35081577 0.36495432 0.64114326
  24. 0.1205805 0.08691627 0.51914626 0.4699555 0.38629299 0.5997259
  25. 0.18897435 0.71435636 0.88409257 0.39914566 0.61984813 0.81699961
  26. 0.73582977 0.40669578 0.98568249 0.34302354 0.93530601 0.5670042
  27. 0.07325921 0.80608678 0.91499317 0.44408143 0.87602544 0.460879
  28. 0.53837919 0.32247829 0.55442405 0.4626714 0.6699028 0.23995908
  29. 0.59526259 0.00169737 0.8921811 0.6765843 0.54639554 0.10472193
  30. 0.63367522 0.37715322 0.5413183 0.96324778 0.98257691 0.02974691
  31. 0.65997386 0.33004865 0.01015346 0.93281806 0.25911108 0.70406365
  32. 0.36173737 0.28565016 0.78313518 0.97908878 0.47217387 0.42415264
  33. 0.48899943 0.65197045 0.72566658 0.25601232 0.14285764 0.37608632
  34. 0.39126918 0.43389732 0.03204375 0.27617961 0.299777 0.26443332
  35. 0.08594334 0.41918558 0.78253973 0.13964291]]
  36. ==========================================
  37. [ 0.50709907 0.4918042 0.49396624 0.43054709 0.51820425 0.53411825
  38. 0.36903605 0.49844735 0.52690041 0.57189295 0.45397283 0.48365057
  39. 0.48909084 0.4285116 0.47550067 0.56076549 0.3616001 0.41884247
  40. 0.4932449 0.53526965 0.43612053 0.47799898 0.45351706 0.35566175
  41. 0.37823597 0.52169913 0.46939452 0.38104826 0.38619147 0.50604315
  42. 0.42278176 0.35567457 0.46241957 0.46691171 0.45960564 0.49867494
  43. 0.37972955 0.51498573 0.49602952 0.40253266 0.51340411 0.47195378
  44. 0.47155547 0.43267282 0.52561714 0.40218548 0.55991067 0.48527456
  45. 0.3426241 0.47660397 0.55649303 0.41380587 0.5221273 0.46387896
  46. 0.48676898 0.38538951 0.51070967 0.47683468 0.44728176 0.39654697
  47. 0.43948301 0.38645049 0.50251031 0.4596219 0.48814413 0.41952392
  48. 0.462185 0.41362353 0.46936284 0.51025021 0.52283525 0.35579524
  49. 0.46392424 0.43706188 0.35220105 0.56517892 0.39823459 0.48822967
  50. 0.37964538 0.40574656 0.47625849 0.51952822 0.45433806 0.42741109
  51. 0.48737059 0.4622454 0.507846 0.38597811 0.3485875 0.39129672
  52. 0.43039389 0.46001204 0.32563059 0.4500199 0.4194708 0.4186703
  53. 0.4037994 0.42681021 0.48935418 0.34961014]
  54. 2017-08-28 09:39:06.907407: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
  55. 0 [[-0.27469051 0.69584221]] [ 0.52409148]
  56. 20 [[ 0.01080259 0.26104224]] [ 0.31455979]
  57. 40 [[ 0.08151589 0.20737803]] [ 0.30584651]
  58. 60 [[ 0.09552376 0.19993299]] [ 0.30241087]
  59. 80 [[ 0.09868889 0.19942255]] [ 0.30100557]
  60. 100 [[ 0.09954762 0.19966199]] [ 0.30042145]
  61. 120 [[ 0.09982692 0.19984138]] [ 0.30017698]
  62. 140 [[ 0.09993018 0.19993044]] [ 0.30007437]
  63. 160 [[ 0.09997115 0.19997025]] [ 0.30003127]
  64. 180 [[ 0.09998797 0.19998741]] [ 0.30001312]
  65. 200 [[ 0.09999496 0.19999468]] [ 0.30000553]
  66. Process finished with exit code 0

小结

最后拟合出来的结果:w = (0.09999496 0.19999468) b = (0.30000553)
也就是前面提到的权重向量w和截距常数b

参考文章:
TensorFlow官方文档

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注