(一)TensorFlow入门

今天开始学习TensorFlow,我们先从初级api开始学习。官方地址如下

https://tensorflow.google.cn/guide/low_level_intro

在tensorflow中,运算是以图(graphic)来进行的。即首先定义好操作的流程,然后再使用session来执行图的过程。

在这里插入图片描述

简单的实现一个矩阵乘

import tensorflow as tf
import numpy as np
# 这两句是因为我的版本问题加上的
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

a = np.array([[1, 2, 3]])
b = np.array([[1],
              [2],
              [3]])
# 创建TensorFlow常量
t_a = tf.constant(a)
t_b = tf.constant(b)
# 创建一个矩乘op
product = tf.matmul(a, b)
# 这里只是一张图而已
print(product)

输出结果为

Tensor("MatMul:0", shape=(1, 1), dtype=int32)

这里返回的只是一个张量对象,而不是计算结果

with tf.Session() as sess:
    res = sess.run(product)
    print(res)

使用tf.Session()来计算,就能得到最后的运行结果了

[[14]]

2.简单的变量操作

用变量和常量做一波运算,注意在使用变量时需要进行初始化操作。。。。好麻烦。。。和常量用法一样,不过据说变量这玩意是可以改变值的

import tensorflow as tf
import numpy as np
# 这两句是因为我的版本问题加上的
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

a = np.array([[1, 2]])
b = np.array([[3, 4]])
# 将a定义为一个变量
t_a = tf.Variable(a)
# 将b定义为一个常量
t_b = tf.constant(b)
# 减法
sub = tf.subtract(t_a, t_b)
# 加法
add = tf.add(t_a, t_b)


# 定义一个全局的变量初始化机器,在使用变量的时候必须用到这个玩意
init = tf.global_variables_initializer()

# 跑一波好像和常量用法一样,不过据说这玩意是可以改变值的
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(sub))
    print(sess.run(add))



输出结果

[[-2 -2]]
[[4 6]]

试着用tf.assign方法给t_a赋值一波

import tensorflow as tf
import numpy as np
# 这两句是因为我的版本问题加上的
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

a = np.array([[1, 2]])
b = np.array([[3, 4]])
# 将a定义为一个变量
t_a = tf.Variable(a)
# 将b定义为一个常量
t_b = tf.constant(b)
# 减法
sub = tf.subtract(t_a, t_b)
# 赋值运算
update = tf.assign(t_a, sub)


# 定义一个全局的变量初始化机器,在使用变量的时候必须用到这个玩意
init = tf.global_variables_initializer()

# 跑一波好像和常量用法一样,不过据说这玩意是可以改变值的
with tf.Session() as sess:
    sess.run(init)
    # 第一波运算
    sess.run(sub)
    sess.run(update)
    print(sess.run(t_a))
    # 第二波运算
    sess.run(sub)
    sess.run(update)
    print(sess.run(t_a))

输出结果

[[-2 -2]]
[[-5 -6]]

赋值成功了,不过好麻烦。。。

3.fetch方式与feed方式

fetch方式就是说一个session跑一堆操作

import tensorflow as tf
import numpy as np

#fetch
input1 = np.array(1)
input2= np.array(2)
input3 = np.array(3)
input1 = tf.constant(input1)
input2 = tf.constant(input2)
input3 = tf.constant(input3)
mul = tf.multiply(input1,input2)
sub = tf.subtract(imput2,mul)

with tf.Session() as sess:
    print(sess.run([mul,sub]))

输出结果,一次性把能输出的都输出了

[2, 0]

feed方式就是先不把输入定下来,等后面再确定

# feed
# 先用tf.placeholder定义好输入的类型
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.add(input1, input2)
# 在session中用feed_dict参数设置输入字典
with tf.Session() as sess:
    print(sess.run(output,feed_dict={input1:1,input2:2}))

输出结果:

3.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值