tensorflow创建张量

视频

https://www.bilibili.com/video/BV1jK4y187yB?p=45
https://www.bilibili.com/video/BV1jK4y187yB?p=46

张量的数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ebNAAyk5-1615445842813)(C:\Users\xiahuadong\Documents\csdn博客\张量元素的数据类型.png)]

张量和numpy数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QMY9G6pq-1615445842814)(C:\Users\xiahuadong\Documents\csdn博客\张量和numpy数组.png)]

创建张量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H1AOtjgs-1615445842815)(C:\Users\xiahuadong\Documents\csdn博客\创建张量.png)]

代码

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Introduce : 创建张量和转换张量
@File      : demo_tensor.py
@Time      : 2021-03-08 16:15
@Author    : xia hua dong
@Tel       : 173 179 76823
@Email     : 17317976823@163.com
@pip       : pip install tensorflow-gpu
"""

import tensorflow as tf
import numpy as np

print("tensorflow的版本:", tf.__version__)
print("是否为eager模式:", tf.executing_eagerly())

# python列表创建张量
a = tf.constant(
    [[1, 2], [3, 4]]  # python列表数据
)
print("张量a:", a)
print("张量a的数据类型:", type(a))
b = a.numpy()  # 张量转numpy数组
print("b:", b)
print("b的类型:", type(b))

# 浮点数创建张量
c = tf.constant(
    1.0,  # 浮点数
    dtype=tf.float64  # 指定张量数据类型(详见:张量元素的数据类型)
)
print("张量c:", c)

# numpy数组创建张量
d = tf.constant(
    np.array([1.0, 2.0])  # numpy数组,数据类型会接受numpy的数据类型保存数据。
)
print("张量d:", d)

e = tf.cast(d, dtype=tf.float32)  # 改变张量数据类型
print("张量e:", e)

f = tf.constant(123456789, dtype=tf.int32)
g = tf.cast(f, tf.int16)
# 一般都是低精度向高精度转换,如果是高精度向低精度转换,有可能会发生如下错误。
print("张量f:", f)
print("张量g:", g)

# 布尔数据创建张量
h = tf.constant(
    [True, False]
)
print("张量h:", h)

i = tf.cast(h, tf.int32)  # 将bool类型转换为int类型
print("张量i:", i)

j = tf.cast(h, tf.bool)  # 将int类型转换为bool类型
print("张量i:", j)

# 字符串创建张量
k = tf.constant(
    "hello word"
)
print("张量k:", k)

# tf.convert_to_tensor(数组/列表/数字/布尔型/字符串) 与 tf.constant 类似
# 创建全零张量
l = tf.zeros(
    shape=(2, 3),  # 张量的形状
    dtype=tf.float32  # 张量的数据类型
)
print("全零张量l:", l)

# 创建全1张量
m = tf.ones(
    shape=(2, 3),  # 张量的形状
    dtype=tf.float32  # 张量的数据类型
)
print("全1张量m:", m)

# 创建数字相同张量
n = tf.fill(
    [2, 3],  # 张量的形状
    8  # 张量的数字
)
print("全相同张量n:", n)

# 创建数字相同张量
o = tf.fill(
    [2, 3],  # 张量的形状
    8.0  # 张量的数字
)
print("全相同张量o:", o)

# 创建数字相同张量
p = tf.constant(
    9,  # 张量的数字
    shape=[2, 3],  # 张量的形状
)
print("全相同张量p:", p)

# 创建正态分布张量
q = tf.random.normal(
    shape=[2, 2],  # 张量的形状
    mean=0.0,  # 均值,省略时,默认是0。
    stddev=2.0,  # 标准差,省略时,默认是1。
    dtype=tf.float32  # 张量的数据类型,省略时,默认是32位浮点数。
)
print("正态分布张量q:", q)

# 创建截断正态分布张量,截断的标准是2倍的标准差
r = tf.random.truncated_normal(
    shape=[2, 2],  # 张量的形状
    mean=0.0,  # 均值,省略时,默认是0。
    stddev=1.0,  # 标准差,省略时,默认是1。
    dtype=tf.float32  # 张量的数据类型,省略时,默认是32位浮点数。
)
print("截断正态分布张量r:", r)

# 创建均匀分布张量
s = tf.random.uniform(
    shape=(3, 3),  # 张量的形状
    minval=0,  # 最小值
    maxval=10,  # 最大值,不包括最大值,区间前闭后开。
    dtype='int32'  # 张量的数据类型,省略时,默认是32位浮点数。
)
print("均匀分布张量s:", s)

# 随机打乱
t = tf.constant([[1, 2], [3, 4], [5, 6]])
u = tf.random.shuffle(t)  # 只随机打乱第一维元素(即只打乱数据集顺序,不打乱数据)
print("被随机打乱的张量u:", u)

# 创建序列张量,和python用法一致
v = tf.range(10)
print("序列张量v:", v)
w = tf.range(
    10,
    delta=2  # 步长
)
print("序列张量w:", w)
x = tf.range(
    1,  # 起始数字,省略默认为0
    10,  # 结束数字
    delta=2  # 步长
)
print("序列张量x:", x)

# 获取张量的维度、数据类型、形状
y = tf.constant(
    [[1, 2], [3, 4]]  # python列表数据
)
print("维度:", y.ndim)
print("数据类型:", y.dtype)
print("形状:", y.shape)

print("维度:", tf.rank(y))
print("元素总数:", tf.size(y))
print("形状:", tf.shape(y))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏华东的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值