【TensorFlow1.0】1基本概念

一、概念

  tensorflow是一个编程系统,使用图(graph)来表示计算任务,图(graph)中的节点称之为op(operation),一个op获得0或者多个tensor,执行计算,产生0或者多个tensor。图必须在会话(session)里被启动。

  1. 使用计算图来表示计算任务。
  2. 在被称为会话(session)的上下文(context)中执行计算图
  3. 使用tensor保存数据。
  4. 通过变量(variable)维护状态
  5. 使用feed和fetch可以为任意的操作赋值或者从中获取数据。

二、TensorFlow结构

在这里插入图片描述
  graph:图,用来表示计算任务
  operation:操作,是图的节点。例加、减等等
  session:会话,图在会话中才能执行完成计算任务。

三、代码

例子1:

import tensorflow as tf
#创建一个常量op
m1=tf.constant([[3,3]])
#创建一个常量
m2=tf.constant([[2],[3]])
#创建矩阵乘法op
product=tf.matmul(m1,m2)
print(product)#输出Tensor("MatMul:0", shape=(1, 1), dtype=int32)。使用session才能真正执行计算
#定义session会话,启动图
sess=tf.Session()
with tf.Session()as sess:
    #调用sess的run执行计算
    result=sess.run(product)
    print(result)

例子2:

import tensorflow as tf
import numpy as np

x_data=np.random.rand(100).astype(np.float)
y_data=x_data*0.1+0.3

'''创建TensorFlow架构开始'''
#创建变量
Weight=tf.Variable(tf.random_uniform([1],-1.0,1.0))#初始-1-1
biases=tf.Variable(tf.zeros([1]))

y=Weight*x_data+biases

#损失函数
loss=tf.reduce_mean(tf.square(y-y_data))


#优化
optimizer=tf.train.GradientDescentOptimizer(0.5)#学习率0.5
train=optimizer.minimize(loss)

#初始化变量
init=tf.initialize_all_variables()

'''创建TensorFlow架构结束'''
with tf.Session() as sess:
    #运行计算图首先要激活init
    sess.run(init)#sess.run()传入什么参数就处理什么。
    for step in range(201):
        sess.run(train)
        if step%20==0:
            print(step,sess.run(Weight),sess.run(biases))
            
            
# 输出:
# 0 [0.17058933] [0.37553135]
# 20 [0.10502829] [0.29712766]
# 40 [0.10122193] [0.29930198]
# 60 [0.10029694] [0.29983038]
# 80 [0.10007216] [0.2999588]
# 100 [0.10001753] [0.29999]
# 120 [0.10000426] [0.29999757]
# 140 [0.10000104] [0.29999942]
# 160 [0.10000027] [0.29999986]
# 180 [0.10000012] [0.29999992]
# 200 [0.10000012] [0.29999992]

1.Session

import tensorflow as tf

matrics1=tf.constant([[3,3]])
matrics2=tf.constant([[2],[2]])

product=tf.matmul(matrics1,matrics2)

'''第一种方式使用session:'''
sess=tf.Session()
result=sess.run(product)
print(result)#[[12]]
sess.close()

'''第二种方式使用session:'''
with tf.Session() as sess:
    result2=sess.run(product)
    print(result2)#[[12]]

2.Variable

import tensorflow as tf

'''定义变量'''
state=tf.Variable(0,name='counter')#初始值,名字
print(state.name)#counter:0

one=tf.constant(1)#初始值

new_state=tf.add(state,one)#变量+常量=变量

updata=tf.assign(state,new_state)#赋值

'''初始化变量'''
init=tf.initialize_all_variables()

with tf.Session() as sess:
    '''run(init)'''
    sess.run(init)
    for _ in range(3):
        sess.run(updata)
        print(sess.run(state))#直接print(state)是不可以的必须用sess。run(state)

3.Placeholder

import tensorflow as tf
"""
variable是已经规定好了初始值
placeholder是在sess.run实时传入初始值
"""
input1=tf.placeholder(tf.float32,[1,2])#数据类型,数据的结构
input2=tf.placeholder(tf.float32,[1,2])

output=tf.mul(input1,input2)

with tf.Session() as sess:
    print(sess.run(output,feed_dict={input1:[7,7],input2:[2,3]}))#sess.run(节点,传入的值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值