python深度学习tensorflow入门基础教程示例

作者:denny402 时间:2021-08-25 07:03:08 

TensorFlow用张量这种数据结构来表示所有的数据。

用一阶张量来表示向量,如:v = [1.2, 2.3, 3.5] ,如二阶张量表示矩阵,如:m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],可以看成是方括号嵌套的层数。

1、编辑器

编写tensorflow代码,实际上就是编写py文件,最好找一个好用的编辑器,如果你用vim或gedit比较顺手,那也可以的啦。我们既然已经安装了anaconda,那么它里面自带一个还算不错的编辑器,名叫spyder,用起来和matlab差不多,还可以在右上角查看变量的值。因此我一直使用这个编辑器。它的启动方式也很简单,直接在终端输入spyder就行了。

2、常量

我们一般引入tensorflow都用语句

import tensorflow as tf

因此,以后文章中我就直接用tf来表示tensorflow了。

在tf中,常量的定义用语句:

a=tf.constant(10)

这就定义了一个值为10的常量a

3、变量

变量用Variable来定义, 并且必须初始化,如:

x=tf.Variable(tf.ones([3,3]))
y=tf.Variable(tf.zeros([3,3]))

分别定义了一个3x3的全1矩阵x,和一个3x3的全0矩阵y,0和1的值就是初始化。

变量定义完后,还必须显式的执行一下初始化操作,即需要在后面加上一句:

init=tf.global_variables_initializer()

这句可不要忘了,否则会出错。

例:自定义一个拉普拉斯的W变量:

import tensorflow as tf
import numpy as np
x=np.array([[1,1,1],[1,-8,1],[1,1,1]])
w=tf.Variable(initial_value=x)
sess=tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(w))

4、占位符

变量在定义时要初始化,但是如果有些变量刚开始我们并不知道它们的值,无法初始化,那怎么办呢?

那就用占位符来占个位置,如:

x = tf.placeholder(tf.float32, [None, 784])

指定这个变量的类型和shape,以后再用feed的方式来输入值。

5、图(graph)

如果把下面的python语句改在tf语句,该怎么写呢:

x=3
y=2
z=x+y
print(z)

定义两个变量,并将两个数相加,输出结果。如果在tf中直接像上面这样写,那就错了。x,y,z分别是三个tensor对象,对象间的运算称之为操作(op), tf不会去一条条地执行各个操作,而是把所有的操作都放入到一个图(graph)中,图中的每一个结点就是一个操作。然后行将整个graph 的计算过程交给一个 TensorFlow 的Session, 此 Session 可以运行整个计算过程,比起操作(operations)一条一条的执行效率高的多。

执行代码如下:

import tensorflow as tf
x = tf.Variable(3)
y = tf.Variable(5)
z=x+y
init =tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(z))

其中sess.run()即是执行,注意要先执行变量初始化操作,再执行运算操作。

Session需要先创建,使用完后还需要释放。因此我们使用with...as..语句,让系统自动释放。

例子1:hello world

import tensorflow as tf
word=tf.constant('hello,world!')
with tf.Session() as sess:
   print(sess.run(word))

例子2:加法和乘法

import tensorflow as tf
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
add = tf.add(a, b)
mul = tf.mul(a, b)
with tf.Session() as sess:
   print('a+b=',sess.run(add, feed_dict={a: 2, b: 3}))
   print('a*b=',sess.run(mul, feed_dict={a: 2, b: 3}))

此处使用feed_dict以字典的方式对多个变量输入值。

例子3:矩阵乘法

import tensorflow as tf
a=tf.Variable(tf.ones([3,2]))
b=tf.Variable(tf.ones([2,3]))
product=tf.matmul(5*a,4*b)
init=tf.initialize_all_variables()
with tf.Session() as sess:
   sess.run(init)
   print(sess.run(product))

 其中

product=tf.matmul(5*a,4*b)

也可以改成 

product=tf.matmul(tf.mul(5.0,a),tf.mul(4.0,b))

定义变量时,没有指定数据类型,则默认为float32,因此是5.0而不是5

来源:https://www.cnblogs.com/denny402/p/5852083.html

标签:python,深度学习,tensorflow,基础教程
0
投稿

猜你喜欢

  • Python教程之pytest命令行方式运行用例

    2022-08-01 22:08:06
  • 缓存是如何实现的?

    2009-11-01 15:35:00
  • python 列表,数组和矩阵sum的用法及区别介绍

    2022-12-16 09:01:47
  • 解决golang在import自己的包报错的问题

    2024-04-25 15:09:19
  • 微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法

    2024-04-18 09:42:40
  • pycharm无法导入lxml的解决办法

    2023-08-24 04:34:39
  • 可视化工具PyVista多线程显示多窗口的实例代码

    2023-03-17 07:46:28
  • python利用跳板机ssh远程连接redis的方法

    2023-04-04 23:06:01
  • Spring boot连接MySQL 8.0可能出现的问题

    2024-01-17 17:04:28
  • Perl中的控制结构学习笔记

    2023-05-17 20:08:18
  • Python可变和不可变、类的私有属性实例分析

    2023-05-27 14:34:08
  • ASP中将Excel数据导入到Access

    2009-02-02 09:15:00
  • Python操作MongoDb数据库流程详解

    2024-01-18 08:48:36
  • python_mask_array的用法

    2022-05-10 06:25:27
  • 从Python的源码来解析Python下的freeblock

    2023-07-26 20:44:39
  • 关于数据库优化问题收集汇总

    2024-01-28 19:05:28
  • python 读取以空格分开的文件操作

    2022-09-08 05:33:21
  • python dict remove数组删除(del,pop)

    2022-11-17 05:24:03
  • MYSQL教程:检查数据表和修复数据表

    2009-03-11 15:24:00
  • 一文带你学会Python Flask框架设置响应头

    2023-04-16 03:11:37
  • asp之家 网络编程 m.aspxhome.com