Tensorflow入门之运算篇

第1关 Tensorflow基本运算

任务描述
本关任务:编写一个函数,该函数有四个零阶Tensor参数,要求该函数使用Tensorflow的API先对它们两两求和,然后对和进行乘积计算。

编程要求
根据提示在右侧编辑器补全代码函数,这个函数以四个零阶Tensor为参数,然后两两求和后进行乘积。即假设输入为a、b、c、d,返回值为(a+b)* (c+d)。

提示:

  • os.environ[“TF_CPP_MIN_LOG_LEVEL”]='3’代码是为了屏蔽Tensorflow输出的log,对本程序不会有影响。

  • 编写程序时需要用tf.constant Op创建常量Op,然后使用运算符Op计算返回结果。

  • 输出是一个标量,不是Tensor,需要调用eval()取值。

# -*- 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 *********#
    r1 = tf.add(a, b).eval()
    r2 = tf.add(c, d).eval()
   
    result = r1 * r2

    # ********** 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))

第2关 Tensorflow常见矩阵操作

任务描述
本关任务:编写一个函数,该函数传入一个值,然后生成一个33的常量方阵,即该矩阵的9个值都是这个传入的函数参数,然后给每个元素值加上该矩阵的对角元素之和,最后求出这个新矩阵的对角元素之和并返回。
编程要求
根据提示,在右侧编辑器补充代码,首先求出以参数为值的3
3的方阵,然后求出该矩阵的对角元素之和并逐个加到原方阵,最后返回新矩阵的对角元素之和。

提示:

  • 矩阵相加可以用+直接实现;
  • 最后返回值是标量而非Tensor,需要用eval()函数取值。
  • os.environ[“TF_CPP_MIN_LOG_LEVEL”]='3’代码是为了屏蔽Tensorflow输出的log,对本程序不会有影响。
  • 此示例中数值类型无需用float32类型,用int即可。
# -*- coding: utf-8 -*-
import tensorflow as tf
import os

os.environ["TF_CPP_MIN_LOG_LEVEL"]='3'

def count_trace(a):
    '''
    返回值:
    result: 一个标量值
    '''
    # 请在此添加代码 完成本关任务
    # ********** Begin *********#
    A = tf.fill([3, 3], a)
    temp = a * 3
    B = tf.fill([3, 3], temp)
    C = A + B
    result = tf.trace(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))

第3关 Tensorflow数据广播机制

任务描述
本关任务:编写一个使用广播机制求Tensor的对角值之和的小程序。
编程要求
根据提示,在右侧编辑器补充代码,要求实现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。

  1. 矩阵相加可以用+直接实现。
  2. 最后返回值是标量而非Tensor,需要用eval()函数取值。
  3. os.environ[“TF_CPP_MIN_LOG_LEVEL”]='3’代码是为了屏蔽Tensorflow输出的log,对本程序不会有影响。
  4. 此示例中数值类型无需用float32类型,用int即可。
  5. 求Tensor对角元素之和的api可以查阅本实训上个关卡。
# -*- 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])
    tensor_c = tensor_a + tensor_b

    tensor_bb = tf.expand_dims(tensor_b, 1)
    tensor_d = tensor_a + tensor_bb

    result = tf.trace(tensor_c + tensor_d).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))

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow是一个由Google开发的开源机器学习库,它被设计用于构建和部署各种类型的机器学习模型,包括深度学习网络。以下是TensorFlow入门的一些基本步骤: 1. **安装TensorFlow**:首先,你需要下载并安装TensorFlow。如果你是Python开发者,可以通过pip install tensorflow命令来安装最新版本。 2. **环境配置**:推荐使用Anaconda或Jupyter Notebook创建一个独立的虚拟环境,这有助于管理不同项目的依赖。 3. **基础概念**: - **张量(Tensors)**:是TensorFlow的基本数据结构,类似于NumPy中的数组,但支持GPU加速计算。 - **图(Graphs)**:TensorFlow的核心思想是基于图的数据流模型,每个节点代表一个操作,边则表示输入和输出。 4. **创建第一个会话(Session)**:Session是运行图形的地方,你需要用它来执行计算。 5. **代码示例**: - 使用`tf.placeholder`定义占位符,它是动态大小的输入变量。 - 创建常量(`tf.constant`),常数节点不参与图的计算过程。 - 定义运算(`tf.add`, `tf.matmul`等)并将其添加到图中。 - 使用`session.run`执行计算,并获取结果。 6. **实战练习**:尝试解决一些简单的问题,比如线性回归、卷积神经网络的基础应用等,通过实际项目来熟悉API和流程。 7. **官方文档**:查阅TensorFlow官方文档(https://tensorflow.org/)是很关键的,它提供了详细的教程、API参考和案例研究。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值