Tensorflow2.0笔记 - 基础数学运算

        本笔记主要记录基于元素操作的+,-,*,/,//,%,**,log,exp等运算,矩阵乘法运算,多维tensor乘法相关运算

import tensorflow as tf
import numpy as np

tf.__version__

#element-wise运算,对应元素的+,-,*,/,**,//,%
tensor1 = tf.fill([3,3], 4)
tensor2 = tf.ones([3,3], dtype=tf.int32)
print(tensor1)
print(tensor2)

print("========tensor1 + tensor2=========\n", tensor1 + tensor2)
print("========tensor1 - tensor2=========\n", tensor1 - tensor2)
print("========tensor1 * tensor2=========\n", tensor1 * tensor2)
print("========tensor1 / tensor2=========\n", tensor1 / tensor2)
print("========tensor1 // tensor2=========\n", tensor1 // tensor2)
print("========tensor1 % tensor2=========\n", tensor1 % tensor2)
#计算tensor的元素的2次方
print("========tensor1 ** 2=========\n", tensor1 ** 2)
print("========tf.pow(tensor1, 2)===\n", tf.pow(tensor1, 2))
#开根号,tf.sqrt()
tensor1 = tf.cast(tensor1, dtype=tf.float32)
print("========tf.sqrt(tensor1)=====\n", tf.sqrt(tensor1))

#log操作,tf.math.log,注意这个函数以e为底
tensor = tf.ones([3,3], dtype=tf.float32)
print("========log(tensor)============\n", tf.math.log(tensor))
#如果要实现以任意数为底数,需要使用换底公式,下面的例子计算了以2为底,对tensor1做log操作
print("========log2(tensor1)==========\n", tf.math.log(tensor1) / tf.math.log(2.))

#指数操作,tf.exp,计算e的n次方
print("========exp(tensor1)===========\n", tf.exp(tensor1))

#矩阵乘法
#两个2x2矩阵相乘
matrix1 = tf.fill([2,2], 1)
matrix2 = tf.fill([2,2], 2)
print(matrix1, "@", matrix2)
print("==========matrix1@matrix2=========\n", matrix1 @ matrix2)
#也可以用tf.matmul()
print("==========tf.matmul(matrix1, matrix2)=\n", tf.matmul(matrix1, matrix2))

#多维tensor乘法
tensor1 = tf.ones([4, 2, 5])
tensor2 = tf.ones([4, 5, 1])
#相乘结果是一个[4,2,1]形状的tensor,具体操作是对应2*5和5*1的matrix相乘
print("==========tensor1@tensor2==========\n", tensor1@tensor2)
#相乘结果是一个[4,2,3,2]形状的tensor,具体操作是对应3*6和6*2的matrix相乘
tensor1 = tf.ones([4,2,3,6])
tensor2 = tf.ones([4,2,6,2])
print("==========tensor1@tensor2==========\n", tensor1@tensor2)
#使用broadcasting
tensor1 = tf.ones([4,2,3])
tensor2 = tf.ones([3,2])
#可以调用broadcast_to扩展,也可以直接用'@'运算符
#tensor2 = tf.broadcast_to(tensor2, [4,3,2])
print("==========tensor1@tensor2==========\n", tensor1@tensor2)

        运行结果:

相关推荐

  1. TensorFlow基础

    2024-01-18 06:30:06       28 阅读
  2. python-基础(2)-数值运算

    2024-01-18 06:30:06       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-18 06:30:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-18 06:30:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-18 06:30:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-18 06:30:06       20 阅读

热门阅读

  1. TypeScript基础

    2024-01-18 06:30:06       29 阅读
  2. 【Leetcode】106. 从中序与后序遍历序列构造二叉树

    2024-01-18 06:30:06       27 阅读
  3. 代码重构 —— 化繁为简

    2024-01-18 06:30:06       38 阅读
  4. 【排序算法】排序算法的复杂度

    2024-01-18 06:30:06       32 阅读
  5. Jenkins 敏感信息实战指南

    2024-01-18 06:30:06       33 阅读
  6. 使用docker-compose搭建gitlab

    2024-01-18 06:30:06       31 阅读
  7. C语言所有字符串函数举例如何使用

    2024-01-18 06:30:06       34 阅读
  8. ubuntu18.04clion无法进入断点

    2024-01-18 06:30:06       37 阅读
  9. ubuntu 20.04 docker及nvidia-docker2安装

    2024-01-18 06:30:06       30 阅读
  10. Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

    2024-01-18 06:30:06       28 阅读
  11. ubuntu 22.04 安装 device-tree-compiler (dtc)

    2024-01-18 06:30:06       38 阅读