django网站开发流程记事本做网站怎么加背景图
2026/1/7 7:29:00 网站建设 项目流程
django网站开发流程,记事本做网站怎么加背景图,免费网址看电视剧大全,建设营销型网站流程图1. 什么是张量#xff08;Tensor#xff09;#xff1f;—— AI世界的数据基石 在前面的文章中#xff0c;我们已经和Tensor打过几次照面。现在#xff0c;让我们正式地认识它。 从数学上讲#xff0c;张量是一个多维数组。这个概念可能有点抽象#xff0c;我们可以用更…1. 什么是张量Tensor—— AI世界的数据基石在前面的文章中我们已经和Tensor打过几次照面。现在让我们正式地认识它。从数学上讲张量是一个多维数组。这个概念可能有点抽象我们可以用更生活化的方式来理解它0维张量标量: 一个单独的数字比如5。就像一个温度计上的读数。1维张量向量: 一串有序的数字比如[1, 2, 3]。就像一周七天的每日最高气温记录。2维张量矩阵: 一个由数字组成的表格比如[[1, 2], [3, 4]]。就像一张灰度图片每个数字代表一个像素点的亮度。3维张量: 一个由“表格”组成的“立方体”。就像一张彩色图片每个像素点由红、绿、蓝RGB三个数值组成所以一张图片就是[高度, 宽度, 3]的数据立方体。更高维的张量: 想象一下一个视频由连续的图片帧组成那么一个视频数据就可以是一个4维张量[帧数, 高度, 宽度, 3]。如果是一批视频那就是5维张量了。在MindSpore中无论是输入的数据图片、文本、声音、模型中的参数权重、偏置还是计算过程中的中间值一切都以Tensor的形式存在和流转。2. 创建Tensor多种方式“无中生有”掌握如何创建Tensor是进行MindSpore编程的第一步。MindSpore提供了灵活多样的创建方式。首先确保你已经激活了之前创建的mindspore_env虚拟环境并进入Python交互环境。importnumpyasnpimportmindsporefrommindsporeimportTensor# 设置为PYNATIVE模式便于观察每一步的结果mindspore.set_context(modemindspore.PYNATIVE_MODE)2.1 从现有数据创建最直接的方式就是将Python的列表List或NumPy数组Array转换为Tensor。# 从Python List创建data_list[[1,2],[3,4]]tensor_from_listTensor(data_list)print(From List:\n,tensor_from_list)# 从NumPy Array创建 (这是最常见和推荐的方式)dat-numpynp.array([[5,6],[7,8]])tensor_from_numpyTensor(dat-numpy)print(From NumPy Array:\n,tensor_from_numpy)2.2 创建具有特定值的Tensor有时我们需要创建一些具有固定值的Tensor用于初始化或其他特定目的。frommindsporeimportops# 创建一个全为1的Tensor形状为(2, 3)ones_tensorops.ones((2,3),mindspore.float32)print(Ones Tensor:\n,ones_tensor)# 创建一个全为0的Tensor形状为(2, 3)zeros_tensorops.zeros((2,3),mindspore.float32)print(Zeros Tensor:\n,zeros_tensor)# 创建一个形状与其他Tensor相同的全1 Tensorlike_tensorops.ones_like(tensor_from_list)print(Ones Like Tensor:\n,like_tensor)2.3 创建随机数或序列Tensor在模型初始化权重等场景下随机数Tensor非常有用。# 创建一个形状为(2, 2)服从标准正态分布的随机数Tensorrand_tensorops.randn((2,2))print(Random Normal Tensor:\n,rand_tensor)# 创建一个从0到9的序列range_tensorops.arange(10)print(Range Tensor:\n,range_tensor)3. Tensor的属性它的“身份证”信息每个Tensor都自带一套“身份信息”描述了它的基本特征。这些属性在调试和构建网络时至关重要。data[[1,2,3],[4,5,6]]my_tensorTensor(data)# 1. 形状 (Shape)# 描述了Tensor在每个维度上的大小是一个元组。print(fShape of tensor:{my_tensor.shape})# 2. 数据类型 (dtype)# 描述了Tensor中存储的数据是什么类型比如整数、浮点数等。print(fData type of tensor:{my_tensor.dtype})# 3. 所在设备 (Device)# 描述了Tensor存储在哪个硬件上是CPU还是GPU/Ascend。# 注意直接打印Tensor对象会显示其设备信息print(fTensor stored on:{my_tensor.device})输出结果类似Shape of tensor: (2, 3) Data type of tensor: Int64 Tensor stored on: CPU4. Tensor的操作像“切菜”和“烹饪”一样处理数据Tensor的强大之处在于可以对它进行各种高效的运算和变换。4.1 索引和切片就像操作NumPy数组一样我们可以方便地获取Tensor的局部数据。tensorops.ones((4,4))tensor[1,1]0# 将第1行第1列的元素从0开始计数赋值为0print(After modification:\n,tensor)# 切片获取第1行到第2行不含第3行的所有列row_slicetensor[1:3,:]print(Row Slice:\n,row_slice)# 切片获取所有行的第1列col_slicetensor[:,1]print(Column Slice:\n,col_slice)4.2 基础算术运算Tensor支持逐元素的加、减、乘、除等运算。xops.ones(2,2)*2yops.ones(2,2)*3# 逐元素相加z_addxy# 或者使用函数式API# z_add_func ops.add(x, y)print(Addition:\n,z_add)# 逐元素相乘z_mulx*yprint(Multiplication:\n,z_mul)4.3 形状变换在构建网络时经常需要改变Tensor的形状以匹配不同层的输入输出要求。original_tensorops.arange(12)print(Original Tensor shape:,original_tensor.shape)# 将1维Tensor重塑为3x4的2维Tensorreshaped_tensororiginal_tensor.reshape((3,4))print(Reshaped Tensor:\n,reshaped_tensor)print(Reshaped Tensor shape:,reshaped_tensor.shape)5. Tensor与NumPy的“亲密关系”MindSpore的Tensor与NumPy的Array之间可以高效、便捷地相互转换。这使得我们可以充分利用NumPy强大的生态库来做数据预处理等工作。5.1 Tensor转换为NumPyms_tensorops.ones(5)print(fMindSpore Tensor:{ms_tensor}, type:{type(ms_tensor)})# 使用 .asnumpy() 方法np_arrayms_tensor.asnumpy()print(fNumPy Array:{np_array}, type:{type(np_array)})5.2 NumPy转换为Tensor这正是我们创建Tensor时最常用的方法。np_arraynp.ones(5)print(fNumPy Array:{np_array}, type:{type(np_array)})# 直接使用Tensor()构造函数ms_tensorTensor(np_array)print(fMindSpore Tensor:{ms_tensor}, type:{type(ms_tensor)})重要提示当Tensor在CPU上时Tensor.asnumpy()和Tensor(numpy_array)的转换过程是零拷贝的意味着它们共享同一块内存。修改其中一个会影响另一个。这极大地提升了效率但也需要注意数据同步问题。6. 总结本文深入探讨了MindSpore的核心数据结构——Tensor。我们学习了它是什么如何创建它它有哪些重要属性以及如何像处理普通数据一样对它进行切片、运算和变形。更重要的是我们理解了Tensor在MindSpore生态中的中心地位以及它与NumPy之间的无缝桥梁。掌握了Tensor您就拿到了进入MindSpore世界的“钥匙”。在下一篇文章中我们将学习如何使用nn.Cell来搭建网络的基本骨架并将我们今天所学的Tensor知识应用到实践中。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询