深度学习-Tensorflow基本介绍01

一,认识TensorFlow

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二,安装Tensorflow

在这里插入图片描述
安装的1.13版本,目前已更新2.0+版本

pip install tensorflow==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

三,TensorFlow图的结构

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
print(a,b)
with tf.Session() as sess: # 上下文管理器
    pass

在这里插入图片描述
在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
print(sum1)
with tf.Session() as sess: # 上下文管理器
    print(sess.run(sum1))

在这里插入图片描述

1,数据流图

在这里插入图片描述
数据:tensor:张量
operation:(OP):专门运算的操作节点,所有操作都是一个op
图:graph:你的整个程序的结构
在这里插入图片描述

在这里插入图片描述
边是由流动的Tensor组成;
每个节点是Operation操作,即一些数学的操作、激励函数的操作等,作为Operation的输入和输出都是Tensor(张量);
边和节点共同构成了Graph,即数据流图;
对于数据流图的运行,需要创建Session这样一个会话来运行,Session可以在不同的设备上运行,例如GPU、CPU等。
在这里插入图片描述
在这里插入图片描述

2,图

在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
print(graph)
with tf.Session() as sess: # 上下文管理器
    print(sess.run(sum1))
    print(a.graph)
    print(sum1.graph)
    print(sess.graph)

在这里插入图片描述
在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 创建一张图(包含了一组op和tensor)
g = tf.Graph()
with g.as_default():
    c = tf.constant(10.0)
    print(c.graph)

# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
print(graph)
with tf.Session() as sess: # 上下文管理器
    print(sess.run(sum1))
    print(sum1.graph)



在这里插入图片描述
创建一张图(包含了一组op和tensor)
op: 只要使用了TensorFlow的API定义的函数,都是op
张量(tensor):指的就是数据
在这里插入图片描述

3,会话

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在编译环境中,输入要执行的Tensorflow代码,当创建会话执行相应的功能时,首先客户端会创建一个图,接着,使用会话的run操作,这是会将需要执行的操作传入服务端,服务端使用C++语言完成相应的操作, 得出结果后,将结果传回客户端,然后根据代码命令最后输出返回的结果。

在这里插入图片描述
在这里插入图片描述

import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告


# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
print(graph)
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: # 上下文管理器
    print(sess.run(sum1))
    print(sum1.graph)



在这里插入图片描述
在这里插入图片描述

import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告


# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址
print(graph)
with tf.Session() as sess: # 上下文管理器
    print(sess.run(sum1))
    print("-"*50)
    print(sum1.graph)
    print("-" * 50)
    print(sum1.eval()) # 只要有绘画的上下文环境,就可以使用方便的eval()



在这里插入图片描述

4,会话里的run()方法

在这里插入图片描述

import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告


# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址

with tf.Session() as sess: # 上下文管理器
    print(sess.run([a,b,sum1]))
    print("-"*50)

在这里插入图片描述
重载机制

在这里插入图片描述

import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告


# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)

# 不是op不能直接运行
aa = 1.0
bb = 2.0
sum2 = aa + bb

# 重载机制(只要一部分是op类型,那么默认会给运算符重载成op类型)
sum3 = a + aa

graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址

with tf.Session() as sess: # 上下文管理器
    print(sess.run(sum3))
    print("-"*50)

在这里插入图片描述
在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 训练模型,实时提供数据去进行训练
# placeholder 是一个占位符,feed_dict是一个字典
plt = tf.placeholder(tf.float32,[2,3]) # 2行3列

with tf.Session() as sess: # 上下文管理器
    print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))

在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 训练模型,实时提供数据去进行训练
# placeholder 是一个占位符,feed_dict是一个字典
plt = tf.placeholder(tf.float32,[None,3]) # 行不固定,3列
print(plt)

with tf.Session() as sess: # 上下文管理器
    print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6],[7,8,9]]}))

在这里插入图片描述

5,张量的定义及数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据的类型代表进度不一样
在这里插入图片描述
在这里插入图片描述

import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告

# # 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)


graph = tf.get_default_graph() # 默认的这张图,相当于是给程序分配一段内存地址

with tf.Session() as sess: # 上下文管理器
    print(sum1.graph)
    print("-"*50)
    print(sum1.name)
    print("-"*50)
    print(sum1.op)
    print("-"*50)
    print(sum1.shape)

在TensorFlow中:打印出来的形状表示如下:
0维:() 1维:(5)
2维:(5,6) 3维(2,3,4)
在这里插入图片描述
在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf


# placeholder 是一个占位符,feed_dict是一个字典
plt = tf.placeholder(tf.float32,[None,3]) # 形状不固定
print(plt)

# 形状的改变(静态形状,动态形状)
plt.set_shape([2,3])
print(plt)


with tf.Session() as sess: # 上下文管理器
    pass

在这里插入图片描述
在这里插入图片描述

import tensorflow as tf

# placeholder 是一个占位符,feed_dict是一个字典
plt = tf.placeholder(tf.float32,[None,3]) # 形状不固定
print(plt)

# 形状的改变(静态形状,动态形状)
plt.set_shape([4,3])
print(plt)
# plt.set_shape([4,3]) # 对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状
plt_reshape = tf.reshape(plt,[2,6]) # 动态形状可以去创建一个新的张量,注意:元素数量必须匹配
print(plt_reshape)


with tf.Session() as sess: # 上下文管理器
    pass

在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# placeholder 是一个占位符,feed_dict是一个字典
plt = tf.placeholder(tf.float32,[None,3]) # 形状不固定
print(plt)

# 形状的改变(静态形状,动态形状)
plt.set_shape([4,3])
print(plt)
# plt.set_shape([4,3]) # 对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状,不能跨维度修改
plt_reshape = tf.reshape(plt,[2,6]) # 动态形状可以去创建一个新的张量,注意:元素数量必须匹配
print(plt_reshape)
plt_reshape2 = tf.reshape(plt,[2,3,2]) # 动态形状可以去创建一个新的张量,注意:元素数量必须匹配,可以跨维度修改
print(plt_reshape2)


with tf.Session() as sess: # 上下文管理器
    pass

在这里插入图片描述
在这里插入图片描述

6,运算API介绍

在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

zero = tf.zeros([3,4],tf.float32)
ones = tf.ones([3,4],tf.float32)

with tf.Session() as sess: # 上下文管理器
    print(zero.eval())
    print("-"*50)
    print(ones.eval())

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

a = [[1,2,3],[4,5,6]]
b = [[7,8,9],[10,11,12]]
c = tf.concat([a,b],axis=0) # 按行合并
d = tf.concat([a,b],axis=1) # 按列合并

with tf.Session() as sess: # 上下文管理器
    print(sess.run(c))
    print("-"*50)
    print(sess.run(d))

在这里插入图片描述
在这里插入图片描述

四,可视化学习

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
1,变量能够持久化保存,普通张量op不能
2,当定义一个变量op的时候,一定要在会话当中去运行初始化
3,name参数:在tensorboard使用的时候显示名字,可以让相同的op名字进行区分

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 变量op
a = tf.constant([1,2,3,4,5]) # 张量

var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0)) # 创建一个随机变量
print(a,var)
# 必须做一步显示的初始化
init_op = tf.global_variables_initializer()
with tf.Session() as sess: # 上下文管理器
    # 必须运行初始化op
    sess.run(init_op)
    print(sess.run([a,var]))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf

# 变量op
a = tf.constant([1,2,3,4,5]) # 张量

var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0)) # 创建一个随机变量
print(a,var)
# 必须做一步显示的初始化
init_op = tf.global_variables_initializer()
with tf.Session() as sess: # 上下文管理器
    # 必须运行初始化op
    sess.run(init_op)
    # 把程序的图结构写入事件文件,graph:把指定的图写入事件文件当中
    filewriter = tf.summary.FileWriter("./test",graph=sess.graph)
    print(sess.run([a,var]))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

posted @ 2020-10-19 22:55  gemoumou  阅读(87)  评论(0编辑  收藏  举报