张量运算

112 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

总结:此文为12月更文计划第二天第五篇。

张量运算

今天对张量进行学习

import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf

from tensorflow import keras

引入需要的包

print(tf.__version__)
print(sys.version_info)
for module in mpl, np, pd, sklearn, tf, keras:
    print(module.__name__, module.__version__)

载入电脑内部所有的包

输出的结果如下:

image.png

创建一个张量对象,对这个张量进行操作:

# constant是常量张量
t = tf.constant([[1., 2., 3.], [4., 5.,6.]])

对张量转化为numpy格式:

print(t)
print(t[:, 1:])
print(t[..., 1])
# t.assign(1)对常量不能进行再次assign设置
type(t.numpy())  #转为ndarray
q=t.numpy()
q

输出的结果如下:

image.png

t1= tf.constant(q)  #把ndarray变为张量
t1

把ndarray变为张量

image.png
# ops 使用tf本身的math接口对Tensor进行计算
print(t+10)
print('-'*50)
print(t)
print('-'*50)
print(tf.square(t))  #可以做的数学运算在官网的tf.math查看到
print('-'*50)
print(t)
print('-'*50)
#矩阵乘以自己的转置
print(tf.transpose(t))
print('-'*50)
print(t @ tf.transpose(t))  #@是矩阵乘法,和*不一致
print('-'*50)
print(t*t)

输出的结果如下:

image.png
print(tf.sqrt(t))
print('-'*50)
print(tf.math.sqrt(t))
print('-'*50)
tf.math.log(t)  #必须加math

输出的结果如下:

image.png
# numpy conversion
print(t.numpy())  #可以直接通过numpy取出来
print(t.numpy().tolist())
print(type(t.numpy()))
print(np.square(t)) #直接求平方
np_t = np.array([[1., 2., 3.], [4., 5., 6.]])
print(tf.constant(np_t)) #转换为tensor

输出的结果如下:

image.png
# Scalars  就是标量,只有一个数值的张量,称为标量
t = tf.constant(2.718)
print(t)
print(t.numpy())
print(t.shape)  #维数

输出的结果如下:

image.png