[python] 深度学习基础------人工神经网络实现鸢尾花分类(三)

简介: [python] 深度学习基础------人工神经网络实现鸢尾花分类(三)

张量相关知识



简介


张量(Tensor):多维数组(列表)


阶:张量的维数


张量可以表示0阶到n阶数组(列表)如图:

image.png


0阶张量叫做标量  表示的是一个单独的数  如123。Tensorflow中的Tensor就是张量,是多维数组(列表)。阶表示张量的维数。


1阶张量叫做向量  表示的是一个一维数组  比如列表[1,2,3]  


2阶张量叫做矩阵  表示二维数组  可以有i行j列个元素  每个元素可用行号列号索引找到  如矩阵m  


判断张量是几阶的就看有几个[] 可以有n阶


张量可以表示0阶到n阶的数组


Tensorflow的数据类型


Tensorf low的数据类型有32位整型,32位浮点、64位浮点,布尔型  字符串型等等


如何创建一个Tensor(张量)


constant()

tf.constant(张量内容,dtype=数据类型(可选))


我们可以使用constant()创建一个张量


第一个参数指定这个张量的内容


第二个参数指定这个张量的数据类型


举例:


import tensorflow as tf  
a=tf.constant([1,5],dtype=tf.int64)  
print(a)
print(a.dtype)  
print(a.shape)
运行结果:
<tf.Tensor([1,5], shape=(2 , ) , dtype=int64)
<dtype: 'int64'>  (2,)


这个例子是创建一个一阶张量  里面有两个元素  指定数据类型是64为整型赋值给a

打印出a  打印出a的数据类型  打印出a的形状


运行结果:


直接打印a会输出张量的所有信息


包括张量的内容、 张量的形状和张量的数据类型


张量的形状看shape的逗号隔开了几个数字   逗号隔开了几个数字  这个张量就是几维的


在这个例子中隔开了一个数字  说明是以为张量    这个数字是2说明张量里有两个元素

也就是这里的数值1  和  5


将numpy的数据类型转换为Tensor数据类型

tf. convert_to_tensor(数据名,dtype=数据类型((可选))


很多时候数据是由numpy格式给出


我们可以使用convert to tensor ()把它变成Tensor格式


b = tf.convert_to_tensor( a,  dtype=tf.int64 )  


这条语句就把numpy格式a变成了Tensor格式b


举例:

import tensorflow as tf  
import numpy as np
a = np.arange(0,5)
b = tf.convert_to_tensor(a,dtype=tf.int64)  
print(a)
print(b)
运行结果:
[0 1 2 3 4]
tf.Tensor([0 1 2 3 4], shape=( 5 , ), dtype=int64)

 

创建特殊张量

创建全为0的张量tf. zeros(维度)


创建全为1的张量tf. ones(维度)


创建全为指定值的张量tf. fill(维度,指定值)指定值)


同样我们可以用zeros ()创建全为0的张量


如:tf. zeros([2, 3])创建了一个二维张量  


一维:直接写数字


二维:【行列】


多维度:方括号里写每个维度的元素个数  中间用逗号隔开


举例:

a = tf.zeros([2, 3])  
b = tf.ones(4)
c = tf.fill([2, 2], 9)  
print(a)
print(b)  
print(c)
运行结果:
tf.Tensor([[0. 0. 0.] [0. 0. 0.]], shape=(2, 3), dtype=float32)
tf.Tensor([1. 1. 1. 1.], shape=(4, ), dtype=float32)
tf.Tensor([[9 9] [9 9]], shape=(2, 2), dtype=int32)


如上代码:创建了一个  两行三列  的  全0  的  二维张量a

                 创建了一个  一行四列  的  全1  的  一维张量b

                 创建了一个  二行二列  的  全9  的  一维张量b


创建符合正态分布的张量

生成正态分布的随机数,默认均值为0,标准差为1


在编写代码时:我们常常随机生成初始化参数    要符合正态分布


可用函数 random.normal 生成指定维度的符合正太分部的张量

tf. random.normal (维度,mean=均值,stddev=标准差)


集中


有时候我们希望生成的随机数更集中一些


所以可以使用 random. truncated_normal () 函数

tf. random.truncated_normal (维度,mean=均值,stddev=标准差)


在tf.truncated_normal中如果随机生成数据的取值在(μ-2σ,μ+2σ)之外  则重新进行生成,保证了生成值在均值附近。

image.png


这个函数可以保证生成的随机数在u士2σ(均值正负两倍标准差)之内


举例:

d = tf.random.normal ([2, 2], mean=0.5, stddev=1)  print(d)
e = tf.random.truncated_normal ([2, 2], mean=0.5, stddev=1)  print(e)
运行结果:
tf.Tensor(
[[0.7925745 0.643315 ]
[1.4752257 0.2533372]], shape=(2, 2), dtype=float32)
tf.Tensor(
[[ 1.3688478  1.0125661 ]
[ 0.17475659 -0.02224463]], shape=(2, 2), dtype=float32)
元素都在两倍标准差之内,数据更向均值0.5集中


比如random. normal ()生成两行两列的张量


里面的元素符合以0.5为均值1为标准差的分布


用random. Truncated_mormal ()生成两行两列的张量


里面的元素符合以0.5为均值   1为标准差的随机数


(数据会更向0.5集中) 生成的随机数在u士2σ(均值正负两倍标准差)之内


创建均匀分布的张量

生成均匀分布随机数  ( minval, maxval )

tf. random. uniform(维度,minval=最小值,maxval=最大值)


可以用random. uni form生成指定维度的均匀分布随机数


用minvalue给定随机数的最小值


用maxvalue给定随机数的最大值     注意:前闭后开区间


如这个例子就生成了两行两列的张量


其中的每个元素都符合在0和1之间的平均分布


举例:

f = tf.random.uniform([2, 2], minval=0, maxval=1)  print(f)
运行结果:
tf.Tensor(
[[0.28219545 0.15581512]
[0.77972126 0.47817433]], shape=(2, 2), dtype=float32)
相关文章
|
1月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
2月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
314 0
|
29天前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
1月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
1月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
246 0
|
2月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
2月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
|
2月前
|
安全 网络性能优化 网络虚拟化
网络交换机分类与功能解析
接入交换机(ASW)连接终端设备,提供高密度端口与基础安全策略;二层交换机(LSW)基于MAC地址转发数据,构成局域网基础;汇聚交换机(DSW)聚合流量并实施VLAN路由、QoS等高级策略;核心交换机(CSW)作为网络骨干,具备高性能、高可靠性的高速转发能力;中间交换机(ISW)可指汇聚层设备或刀片服务器内交换模块。典型流量路径为:终端→ASW→DSW/ISW→CSW,分层架构提升网络扩展性与管理效率。(238字)
754 0
|
2月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
136 0
|
3月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
242 0

热门文章

最新文章

推荐镜像

更多