开启掘金成长之旅!这是我参与「掘金日新计划 · 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__)
载入电脑内部所有的包
输出的结果如下:
创建一个张量对象,对这个张量进行操作:
# 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
输出的结果如下:
t1= tf.constant(q) #把ndarray变为张量
t1
把ndarray变为张量
# 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)
输出的结果如下:
print(tf.sqrt(t))
print('-'*50)
print(tf.math.sqrt(t))
print('-'*50)
tf.math.log(t) #必须加math
输出的结果如下:
# 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
输出的结果如下:
# Scalars 就是标量,只有一个数值的张量,称为标量
t = tf.constant(2.718)
print(t)
print(t.numpy())
print(t.shape) #维数
输出的结果如下: