概述
Tensorflow入门--运算
- 一、Tensorflow基本运算
- 二、Tensorflow常见矩阵操作
- 三、Tensorflow数据广播机制
- 总结
一、Tensorflow基本运算
任务描述:
- 本关任务:编写一个函数,该函数有四个零阶Tensor参数,要求该函数使用Tensorflow的API先对它们两两求和,然后对和进行乘积计算。
编程要求:
- 根据提示在右侧编辑器补全代码函数,这个函数以四个零阶Tensor为参数,然后两两求和后进行乘积。即假设输入为a、b、c、d,返回值为(a+b)* (c+d)
测试说明:
测试程序会使用测试集对你编写的代码进行测试:
- 测试输入:
2 3 4 5
- 预期输出:
45
- 测试输入:
5 1 2 3
- 预期输出:
30
# -*- coding: utf-8 -*-
import tensorflow as tf
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3'
def simple_func(a,b,c,d):
'''
返回值:
result: 一个标量值
'''
# 请在此添加代码 完成本关任务
# ********** Begin *********#
A = tf.add(a,b)
B = tf.add(c,d)
result = tf.multiply(A,B).eval()
# ********** End **********#
# 返回result
return result
a = int(input())
b = int(input())
c = int(input())
d = int(input())
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(simple_func(a,b,c,d))
二、Tensorflow常见矩阵操作
任务描述:
- 本关任务:编写一个函数,该函数传入一个值,然后生成一个3*3的常量方阵,即该矩阵的9个值都是这个传入的函数参数,然后给每个元素值加上该矩阵的对角元素之和,最后求出这个新矩阵的对角元素之和并返回。
编程要求:
- 根据提示,在右侧编辑器补充代码,首先求出以参数为值的3*3的方阵,然后求出该矩阵的对角元素之和并逐个加到原方阵,最后返回新矩阵的对角元素之和。
提示:
-
矩阵相加可以用+直接实现;
-
最后返回值是标量而非Tensor,需要用eval()函数取值。
-
os.environ[“TF_CPP_MIN_LOG_LEVEL”]='3’代码是为了屏蔽Tensorflow输出的log,对本程序不会有影响。
-
此示例中数值类型无需用float32类型,用int即可。
测试说明:
测试程序会使用测试集对你编写的代码进行测试:
-
测试输入:2 预期输出:24
-
测试输入:8 预期输出:96
# -*- coding: utf-8 -*-
import tensorflow as tf
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3'
def count_trace(a):
'''
返回值:
result: 一个标量值
'''
# 请在此添加代码 完成本关任务
# ********** Begin *********#
# 以a为值的3*3矩阵
A = tf.fill([3,3],a)
B = tf.constant([[a,0,0],[0,a,0],[0,0,a]])
B = tf.trace(B)
C= A+B
C=tf.trace(C)
result =C.eval()
# ********** End **********#
# 返回result
return result
init_op = tf.global_variables_initializer()
a = int(input())
with tf.Session() as sess:
sess.run(init_op)
print(count_trace(a))
三、Tensorflow数据广播机制
任务描述:
- 本关任务:编写一个能计算数组平均值和最大值的小程序。
编程要求:
- 根据提示,在右侧编辑器补充代码,要求实现broad_cast函数,该函数传入一个参数t,首先先生成一个值为[t,2t]的一阶Tensor,然后tensor_a分别和这个一阶Tensor使用0的广播尺寸和使用1的广播尺寸相加,分别形成两个新的Tensor,接着让这两个新Tensor相加,求出最终相加后Tensor的对角值之和。
- 举个例子,假设传入的参数是1,则会生成一个[1,2]的一阶Tensor,然后tensor_a分别和这个一阶Tensor使用0的广播尺寸和使用1的广播尺寸相加,即:
|1 3| |1 2| |2 5|
+ =
|4 5| |1 2| |5 7|
+ ==> |4 9|
|1 3| |1 1| |2 4| |11 14|
+ =
|4 5| |2 2| |6 7|
-
然后上面矩阵对角线元素之和为18(即14+4),在这个例子中,输入为1,输出为18。
-
矩阵相加可以用+直接实现。
-
最后返回值是标量而非Tensor,需要用eval()函数取值。
-
os.environ[“TF_CPP_MIN_LOG_LEVEL”]='3’代码是为了屏蔽Tensorflow输出的log,对本程序不会有影响。
-
此示例中数值类型无需用float32类型,用int即可。
-
求Tensor对角元素之和的api可以查阅本实训上个关卡。
测试说明:
测试程序会使用测试集对你编写的代码进行测试:
-
测试输入:1 预期输出:18
-
测试输入:3 预期输出:30
-
测试输入:5 预期输出:42
# -*- coding: utf-8 -*-
import tensorflow as tf
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3'
def broad_cast(t):
tensor_a = tf.constant([[1, 3], [4, 5]])
'''
返回值:
result: 一个标量值
'''
# 请在此添加代码 完成本关任务
# ********** Begin *********#
tensor_b = tf.constant([t,2*t])
tensorb0 = tensor_a+tf.expand_dims(tensor_b,0)
tensorb1 = tensor_a+tf.expand_dims(tensor_b,1)
result = tf.trace(tensorb0 + tensorb1).eval()
# ********** End **********#
# 返回result
return result
init_op = tf.global_variables_initializer()
a = int(input())
with tf.Session() as sess:
sess.run(init_op)
print(broad_cast(a))
总结
本章转载自头歌实践作业,若有侵权,请告知必删最后
以上就是高大白云为你收集整理的Tensorflow入门--运算一、Tensorflow基本运算二、Tensorflow常见矩阵操作三、Tensorflow数据广播机制总结的全部内容,希望文章能够帮你解决Tensorflow入门--运算一、Tensorflow基本运算二、Tensorflow常见矩阵操作三、Tensorflow数据广播机制总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复