一、常量的定义

  1. import tensorflow as tf
  2. #类比 语法 api 原理
  3. #基础数据类型 运算符 流程 字典 数组
  4. data1 = tf.constant(2,dtype=tf.int32)
  5. data2 = tf.Variable(10,name='var')
  6. print(data1)
  7. print(data2)
  8. #shape 维度 const长度 shape维度 dtype 数据类型
  9. sess = tf.Session()
  10. print(sess.run(data1))
  11. init = tf.global_variables_initializer()
  12. sess.run(init)
  13. print(sess.run(data2))

必须通过session来操作对象

二、tensorflow运行实质

tensorflow运算实质是由  tensor + 计算图

tensor  数据

op operation 赋值,运算

graphs 数据操作的过程

session 是执行的核心

  1. import tensorflow as tf
  2. #类比 语法 api 原理
  3. #基础数据类型 运算符 流程 字典 数组
  4. data1 = tf.constant(2,dtype=tf.int32)
  5. data2 = tf.Variable(10,name='var')
  6. print(data1)
  7. print(data2)
  8. #shape 维度 const长度 shape维度 dtype 数据类型
  9. '''
  10. sess = tf.Session()
  11. print(sess.run(data1))
  12. init = tf.global_variables_initializer()
  13. sess.run(init)
  14. print(sess.run(data2))
  15. '''
  16. init = tf.global_variables_initializer()
  17. sess = tf.Session()
  18. with sess:
  19. sess.run(init)
  20. print(sess.run(data2))

四则运算:

  1. import tensorflow as tf
  2. data1 = tf.constant(6)
  3. data2 = tf.Variable(2)
  4. dataAdd = tf.add(data1,data2)
  5. dataCopy = tf.assign(data2,dataAdd) #先把 6 和2进行计算
  6. dataMul = tf.multiply(data1,data2)
  7. dataSub = tf.subtract(data1,data2)
  8. dataDiv = tf.divide(data1,data2)
  9. init = tf.global_variables_initializer()
  10. with tf.Session() as sess:
  11. sess.run(init)
  12. print(sess.run(dataAdd))
  13. print(sess.run(dataMul))
  14. print(sess.run(dataSub))
  15. print(sess.run(dataDiv))
  16. print('sess.run(dataCopy)',sess.run(dataCopy))
  17. print('dataCopy.eval()',dataCopy.eval())#eval的用法与下行一样
  18. print('tf.get_default_session().run(dataCopy)',tf.get_default_session().run(dataCopy))
  19. print("end!")

运行结果:

3、矩阵

placehold 预定义变量

  1. #placehold 预定义
  2. import tensorflow as tf
  3. data1 = tf.placeholder(tf.float32)
  4. data2 = tf.placeholder(tf.float32)
  5. dataAdd = tf.add(data1,data2)
  6. with tf.session() as sess:
  7. print(sess.run(dataAdd,feed_dict=(data1:6,data2:2)))
  8. # 1 dataAdd 2 data (feed_dict = {1:6 2})
  9. print('end')

基本操作

  1. import tensorflow as tf
  2. data1 = tf.constant([[6,6]])
  3. data2 = tf.constant([[2],
  4. [2]])
  5. data3 = tf.constant([[3,3]])
  6. data4 = tf.constant([[1,2],[3,4],[5,6]])
  7. print(data4.shape)#打印维度
  8. with tf.Session() as sess:
  9. print(sess.run(data4))#打印整体内容
  10. print(sess.run(data4[0]))#打印某一行
  11. print(sess.run(data4[:,1]))#打印某一列
  12. print(sess.run(data4[1,1]))#打印第一行第一列

基本操作

  1. import tensorflow as tf
  2. data1 = tf.constant([[6,6]])
  3. data2 = tf.constant([[2],
  4. [2]])
  5. data3 = tf.constant([[3,3]])
  6. data4 = tf.constant([[1,2],[3,4],[5,6]])
  7. matAdd = tf.add(data1,data3)
  8. matMul = tf.matmul(data1,data2)
  9. with tf.Session() as sess:
  10. print(sess.run(matMul))
  11. print(sess.run(matAdd))

  1. import tensorflow as tf
  2. mat0 = tf.constant([[0,0,0],[0,0,0]])
  3. mat1 = tf.zeros([2,3])
  4. mat2 = tf.ones([3,2])
  5. mat3 = tf.fill([2,3],15)
  6. with tf.Session() as sess:
  7. #print(sess.run(mat0))
  8. print(sess.run(mat1))
  9. print(sess.run(mat2))
  10. print(sess.run(mat3))

运行结果:

  1. import tensorflow as tf
  2. mat1 = tf.constant([[2],[3],[4]])
  3. mat2 = tf.zeros_like(mat1)
  4. mat3 = tf.linspace(0.0,2.0,11)
  5. mat4 = tf.random_uniform([2,3],-1,2)
  6. with tf.Session() as sess:
  7. print(sess.run(mat2))
  8. print(sess.run(mat3))
  9. print(sess.run(mat4))

四、Numpy的使用

  1. #CRUD
  2. import numpy as np
  3. data1 = np.array([1,2,3,4,5])
  4. print(data1)
  5. data2 = np.array([[1,2],
  6. [3,4]])
  7. print(data2)
  8. #维度
  9. print(data1.shape,data2.shape)
  10. #zero ones 单位矩阵
  11. print(np.zeros([2,3]),np.ones([2,2]))
  12. #改查
  13. data2[1,0] = 5
  14. print(data2)
  15. print(data2[1,1])
  16. #加减乘除
  17. data3 = np.ones([2,3])
  18. print(data3*2)
  19. print(data3/3)
  20. print(data3+2)
  21. print(data3-3)
  22. #矩阵的加法和乘法
  23. data4 = np.array([[1,2,3],[4,5,6]])
  24. print(data3+data4)
  25. #

五、matplotlib的使用

绘制折线图

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. x = np.array([1,2,3,4,5,6,7,8])
  4. y = np.array([3,4,7,6,2,7,10,15])
  5. plt.plot(x,y,'r')#绘制 1 折线图 1x 2 y 3 color

柱状图:

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. x = np.array([1,2,3,4,5,6,7,8])
  4. y = np.array([3,4,7,6,2,7,10,15])
  5. plt.plot(x,y,'r')#绘制 1 折线图 1x 2 y 3 color
  6. plt.plot(x,y,'g',lw=10) #4 line w
  7. # 折线 饼状 柱状
  8. plt.bar(x,y,0.5,alpha=1,color='b')
  9. plt.show()

神经网络逼近股票收盘价格

首先绘制K线

  1. import tensorflow as tf
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. date = np.linspace(1,15,15)
  5. endPrice = np.array([2511.90,2538.26,2510.68,2591.66,2732.98,2701.69,2701.29,2678.67,2726.50,2681.50,2739.17,2715.07,2823.58,2864.90,2919.08])
  6. beginPrice = np.array([2438.71,2500.88,2534.95,2512.52,2594.04,2743.26,2697.47,2695.24,2678.23,2722.13,2674.93,2744.13,2717.46,2832.73,2877.40])
  7. print(date)
  8. plt.figure()
  9. for i in range(0,15):
  10. # 1 柱状图
  11. dateOne = np.zeros([2])
  12. dateOne[0] = i;
  13. dateOne[1] = i;
  14. priceOne = np.zeros([2])
  15. priceOne[0] = beginPrice[i]
  16. priceOne[1] = endPrice[i]
  17. if endPrice[i]>beginPrice[i]:
  18. plt.plot(dateOne,priceOne,'r',lw=8)
  19. else:
  20. plt.plot(dateOne,priceOne,'g',lw=8)
  21. plt.show()

实现人工神经网络:

分为三层:

1、输入层

2、中间层(隐藏层)

3、输出层

在这里面  输入矩阵为15 x 1

隐藏层矩阵 1x10的矩阵

输出层  输出矩阵

15 x 1

实现的功能:

通过天数输入  输出每天对应的股价

隐藏层

A*W1+b1 = B

B*w2+b2 = C

A:输入层 B:隐藏层 C:输出层 W1 1x10 B1 1x10偏移矩阵

代码如下:

  1. # layer1:激励函数+乘加运算
  2. import tensorflow as tf
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. date = np.linspace(1,15,15)
  6. endPrice = np.array([2511.90,2538.26,2510.68,2591.66,2732.98,2701.69,2701.29,2678.67,2726.50,2681.50,2739.17,2715.07,2823.58,2864.90,2919.08]
  7. )
  8. beginPrice = np.array([2438.71,2500.88,2534.95,2512.52,2594.04,2743.26,2697.47,2695.24,2678.23,2722.13,2674.93,2744.13,2717.46,2832.73,2877.40])
  9. print(date)
  10. plt.figure()
  11. for i in range(0,15):
  12. # 1 柱状图
  13. dateOne = np.zeros([2])
  14. dateOne[0] = i;
  15. dateOne[1] = i;
  16. priceOne = np.zeros([2])
  17. priceOne[0] = beginPrice[i]
  18. priceOne[1] = endPrice[i]
  19. if endPrice[i]>beginPrice[i]:
  20. plt.plot(dateOne,priceOne,'r',lw=8)
  21. else:
  22. plt.plot(dateOne,priceOne,'g',lw=8)
  23. #plt.show()
  24. # A(15x1)*w1(1x10)+b1(1*10) = B(15x10)
  25. # B(15x10)*w2(10x1)+b2(15x1) = C(15x1)
  26. # 1 A B C
  27. dateNormal = np.zeros([15,1])
  28. priceNormal = np.zeros([15,1])
  29. for i in range(0,15):
  30. dateNormal[i,0] = i/14.0;
  31. priceNormal[i,0] = endPrice[i]/3000.0;
  32. x = tf.placeholder(tf.float32,[None,1])
  33. y = tf.placeholder(tf.float32,[None,1])
  34. # B
  35. w1 = tf.Variable(tf.random_uniform([1,10],0,1))
  36. b1 = tf.Variable(tf.zeros([1,10]))
  37. wb1 = tf.matmul(x,w1)+b1
  38. layer1 = tf.nn.relu(wb1) # 激励函数
  39. # C
  40. w2 = tf.Variable(tf.random_uniform([10,1],0,1))
  41. b2 = tf.Variable(tf.zeros([15,1]))
  42. wb2 = tf.matmul(layer1,w2)+b2
  43. layer2 = tf.nn.relu(wb2)
  44. loss = tf.reduce_mean(tf.square(y-layer2))#y 真实 layer2 计算
  45. train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
  46. with tf.Session() as sess:
  47. sess.run(tf.global_variables_initializer())
  48. for i in range(0,10000):
  49. sess.run(train_step,feed_dict={x:dateNormal,y:priceNormal})
  50. # w1w2 b1b2 A + wb -->layer2
  51. pred = sess.run(layer2,feed_dict={x:dateNormal})
  52. predPrice = np.zeros([15,1])
  53. for i in range(0,15):
  54. predPrice[i,0]=(pred*3000)[i,0]
  55. plt.plot(date,predPrice,'b',lw=1)
  56. plt.show()

预计结果基本上吻合

TensorFlow、numpy、matplotlib、基本操作的更多相关文章

  1. 在mac安装numpy matplotlib scipy

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #fffff ...

  2. Ubuntu-Python2.7安装 scipy,numpy,matplotlib 和pip

    一. scipy,numpy,matplotlib sudo apt-get install python-scipy sudo apt-get install python-numpy sudo a ...

  3. NumPy Matplotlib库

    NumPy - Matplotlib Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 ...

  4. 21、numpy—Matplotlib

    NumPy Matplotlib Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 P ...

  5. 【学习总结】GirlsInAI ML-diary day-21-初识 Numpy, Matplotlib, Seanborn [柱状图、折线图、箱图]

    [学习总结]GirlsInAI ML-diary 总 原博github链接-day21 初识 Numpy, Matplotlib, Seanborn [柱状图.折线图.箱图] 一.Titanic练习赛 ...

  6. Windows系统在Python2.7环境下安装numpy, matplotlib, scipy - Lichanghao Blog

    numpy, matplotlib, scipy三个包是科学计算和绘图的利器.安装它们既可以在网上下载exe安装包,也可以用python内置的包管理工具来下载安装,后者较为方便. 这几天做美赛要用到, ...

  7. NumPy的基本操作

    1 简介 NumPy 是用于处理数组的 python 库,部分用 Python 编写,但是大多数需要快速计算的部分都是用 C 或 C ++ 编写的.它还拥有在线性代数.傅立叶变换和矩阵领域中工作的函数 ...

  8. (零)机器学习入门与经典算法之numpy的基本操作

    1.根据索引来获取元素* 创建一个索引列表ind,用来装载索引,当numpy数据是一维数据时:一个索引对应的是一个元素具体的例子如下: import numpy as np # 数据是一维数据时:索引 ...

  9. 利用numpy+matplotlib绘图的基本操作教程

    简述 Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单.具体介绍见matplot官网. Numpy(Nu ...

  10. numpy&matplotlib读书笔记

    Matplotlib matplotlib是Python优秀的数据可视化第三方库 matplotlib库的效果可参考 http://matplotlib.org/gallery.html matplo ...

随机推荐

  1. 用vue和layui简单写一个响应式数据展示表

    在创建项目之前,先把我们需要的文件打包处理 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  2. .NET能开发出什么样的APP?盘点通过Smobiler开发的APP

    .NET程序员一定最熟悉所见即所得式开发,亲切的Visual Studio开发界面,敲了无数个日夜的C#代码. Smobiler也是因为具备这样的特性,使开发人员,可以在VisualStudio上,像 ...

  3. Python—函数进阶篇

    lambda表达式(匿名函数表达式) 作用:创建一个匿名函数对象.同def类似,但不提供函数名. 语法:lambda [形参1,形参2,...] : 表达式 语法说明 lambda 只是一个表达式,它 ...

  4. Nginx 配置实例-动静分离

    1.什么是动静分离  通过 location 指定不同的后缀名实现不同的请求转发.通过 expires 参数设置,可以使浏 览器缓存过期时间,减少与服务器之前的请求和流量.具体 Expires 定义: ...

  5. spark-shell 中rdd常用方法

    centos 7.2     spark 2.3.3      scala 2.11.11    java 1.8.0_202-ea spark-shell中为scala语法格式 1.distinct ...

  6. ARM 寻址方式

    寻址方式有 9种 1.寄存器 2.立即数 3.寄存器位移 4.寄存器间接 5.基址 6.多寄存器 7.堆栈 8.块拷贝 9.相对 1. MOV R1,R2 R1 = R2 2. MOV R0,#0x1 ...

  7. 第十二周Scrum会议

    本次照片 总结上周所达成的工作 做到的工作 1. 将前端页面进行了比较美观的美化 2. 实现了后台的代码的整合,同时将flask项目的整体框架搭建完成 3. 进行了数据库的建表等一些工作 遇到的难点 ...

  8. LeetCode 分治算法

    分治算法:是将问题划分为一些独立的子问题,递归的求解个子问题,然后合并子问题的解而得到原问题的解. 分治算法步骤 step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题: ...

  9. jwt, token, session和cookies

    jwt token,session和cookies

  10. 小程序-tabBar简易版

    <!-- 结构 --> <view class="wrapper"> <block wx:for="{{desc}}"> & ...