人工智能AI编程基础(六)

Tensor支持从numpy转换为Tensor,并且本身也包含一些与numpy相同的随机函数,比如normal、truncated_normal、uniform、shuffle等函数,需要注意的是gather函数是根据下标来取tensor中指定位置的值,是必用的高频函数.

# coding: utf-8 
# @时间   : 2022/3/20 2:59 下午
# @作者   : 那美那美
import tensorflow as tf
import numpy as np

# numpy转换为tensor类型
a1 = tf.convert_to_tensor(np.ones((2, 3)))  # np.ones(shape)产生指定维度的0
a2 = tf.ones((2, 3))  # 直接使用tf中的函数
a3 = tf.ones_like(a2)  # 根据某个tesnor创建相同维度的0
a4 = tf.fill((2, 2), 1)  # 指定维度并填充指定的值1
a5 = tf.random.normal((2, 2), mean=1, stddev=1)  # 产生均值为1,标准差为1满足正态分布的随机数
# 生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的值则丢弃重新选择
a6 = tf.random.truncated_normal((2, 2), mean=0, stddev=1)
# 生成的值在 [minval, maxval) 范围内遵循均匀分布。该范围包括下限 minval ,而上限 maxval 被排除
a7 = tf.random.uniform((2, 2), minval=0, maxval=1)
idx = tf.range(10)
a8 = tf.random.shuffle(idx)  # 将序列中的元素按第0个维度随机打乱
a = tf.random.normal([15, 1])
a9 = tf.gather(a, idx)  # 根据idx获取a变量中tesnor位置的值
print(a1, a2, a3, a4, a5, a6, a7, a8, a9, sep='\n***************\n')

运行结果:

tf.Tensor(
[[1. 1. 1.]
 [1. 1. 1.]], shape=(2, 3), dtype=float64)
***************
tf.Tensor(
[[1. 1. 1.]
 [1. 1. 1.]], shape=(2, 3), dtype=float32)
***************
tf.Tensor(
[[1. 1. 1.]
 [1. 1. 1.]], shape=(2, 3), dtype=float32)
***************
tf.Tensor(
[[1 1]
 [1 1]], shape=(2, 2), dtype=int32)
***************
tf.Tensor(
[[0.893381   0.39684772]
 [0.80256844 2.9290302 ]], shape=(2, 2), dtype=float32)
***************
tf.Tensor(
[[ 1.8266828   0.57199335]
 [ 1.8103107  -1.5668089 ]], shape=(2, 2), dtype=float32)
***************
tf.Tensor(
[[0.70846033 0.84123945]
 [0.6737821  0.25132465]], shape=(2, 2), dtype=float32)
***************
tf.Tensor([7 8 2 9 4 5 6 3 1 0], shape=(10,), dtype=int32)
***************
tf.Tensor(
[[-0.2805563 ]
 [ 0.16632299]
 [-0.08243521]
 [-0.8902492 ]
 [ 0.7679219 ]
 [ 1.1871251 ]
 [-0.99111414]
 [ 0.22882934]
 [-1.2589599 ]
 [-2.2318528 ]], shape=(10, 1), dtype=float32)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

那美那美

失业了,写文章求吃碗炒面

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

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

打赏作者

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

抵扣说明:

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

余额充值