MindSpore中NumPy变量转换为Tensor张量使用的Tensor.from_numpy()函数到底是深拷贝还是浅拷贝

在NumPy转换为Tensor使用的Tensor.from_numpy()函数到底是深拷贝还是浅拷贝

使用Tensor()将NumPy变量转换为Tensor变量。

类似数组转换张量的方法

n = np.ones(5)
t = Tensor.from_numpy(n)
print(f"t: {t}", type(t))
np.add(n, 1, out=n)
print(f"n: {n}", type(n))
print(f"t: {t}", type(t))

在这里插入图片描述

至于这里对numpy类型的n加了1后,t为什么也加了一 emmm在英文释义里有那么一句话

Docstring:

Convert numpy array to Tensor.

If the data is not C contiguous, the data will be copied to C contiguous to construct the tensor.

Otherwise, The tensor will be constructed using this numpy array without copy.

意思是说如果numpy数组连续的话将使用原numpy数组来构造张量,也就是浅拷贝,所以导致上面的t中的元素也加了1,因为这个t只是指向了和原来n一样地址的指针,并没有为了创建这个张量而开辟一块内存空间

所以这里的from_numpy是一个浅拷贝吗????我们可以创建一个不连续的numpy数组来测试一下

# 创建一个不连续的 NumPy 数组 'F' 表示按列优先 将 C 转换为不连续的(一维的应该不行)
n_new = np.array([[1, 2], [3, 4]], order='F')
t_new = Tensor.from_numpy(n_new)

print(f"t_new: {t_new}", type(t_new))
print(f"n_new: {n_new}", type(n_new))

np.add(n_new, 1, out=n_new)

print(f"n_new: {n_new}", type(n_new))
print(f"t_new: {t_new}", type(t_new))

在这里插入图片描述

这个时候我们可以发现,此时的from_numpy不是一个浅拷贝,而是一个深拷贝

刚刚好被群里扫盲的大佬推了一个python中探讨深浅拷贝的链接 我那么白吗

https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/747679.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 LangServe 构建和部署 MinIO 支持的 LangChain Agent API

我们在LangChain的创新世界中的旅程揭示了其在转变数据管理和应用程序功能方面的强大能力。 通过之前的讨论,我们深入探讨了几个主题,同时探索了LangChain的复杂功能。在本文中,我们将以“使用 MinIO 赋能 Langchain 代理”中涵盖的概念为基…

postgres数据库的流复制

1. 流复制和逻辑复制的差异 逻辑复制和流复制最直观的不同是,逻辑复制支持表级别复制区分点事原理不同 逻辑日志是在wal日志产生的数据库上,由逻辑解析模块对wal日志进行初步的解析,解析结果是ReorderBufferChange(理解为HeapTup…

SpringBoot整合拦截器和日期转换器

一、SpringBoot整合拦截器 1.添加拦截器 package com.by.interceptor;import com.by.pojo.User; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest; import java…

BaseMapper 接口介绍

基于 mybatis-mapper/provider 核心部分实现的基础的增删改查操作,提供了一个核心的 io.mybatis.mapper.BaseMapper 接口和一个 预定义 的 io.mybatis.mapper.Mapper 接口,BaseMapper 接口定义如下: /*** 基础 Mapper 方法,可以在…

React useImperativeHandle Hook

useImperativeHandle Hook 是一个比较比较简单的 hook,为 ref 节点添加一些处理方法,下面是来自官网例子,为 ref 添加了两个方法。 import { forwardRef, useRef, useImperativeHandle } from react;const MyInput forwardRef(function MyI…

香港办公室顺利落地,量子之歌发布白皮书开启银发新篇章

6月25日,量子之歌香港办公室开业典礼暨《2023年中国中老年服务市场白皮书:银发经济,耀眼的黄金赛道》发布会于香港中环交易广场隆重开幕。 这一里程碑事件不仅彰显了量子之歌在银发经济领域的行业领军者风范,更凸显了其在专业服务…

一文了解自定义表单系统开源的多个优势

降本、提质、增效,是当前很多企业都想实现的目的。什么样的软件可以助力企业创造价值?低代码技术平台是近些年得到了很多客户喜爱的平台产品,因为它能帮助大家减少编程代码的撰写,能轻松助力各部门之间做好协调沟通工作&#xff0…

算法导论 总结索引 | 第四部分 第十六章:贪心算法

1、求解最优化问题的算法 通常需要经过一系列的步骤,在每个步骤都面临多种选择。对于许多最优化问题,使用动态规划算法求最优解有些杀鸡用牛刀了,可以使用更简单、更高效的算法 贪心算法(greedy algorithm)就是这样的算…

13.1 Go 反射(Reflection)

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

文本生成图像综述

本调查回顾了扩散模型在生成任务中广泛流行的背景下文本到图像的扩散模型。作为一份自成一体的作品,本调查首先简要介绍了基本扩散模型如何用于图像合成,然后介绍了条件或指导如何改善学习。基于这一点,我们介绍了文本到图像生成方面的最新方…

条码二维码读取设备在医疗设备自助服务的重要性

医疗数字信息化建设的深入推进,医疗设备自助服务系统已成为医疗服务领域的一大趋势,条码二维码读取设备作为自助设备的重要组成部分,通过快速、准确地读取条形码二维码信息,不公提升了医疗服务效率,还为患者提供了更加…

Flutter页面状态保留策略

目的: 防止每次点击底部按钮都进行一次页面渲染和网络请求 1. 使用IndexedStack 简单,只需要把被渲染的组件外部套一层IndexedStack即可 缺点: 在应用启动的时候,所有需要保存状态的页面都会直接被渲染,保存起来. 对性能有影响 2. 使用PageController 实现较为复杂,但是不用…

Biome-BGC生态系统模型与Python融合技术

Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数,模拟日尺度碳、水和氮通量的有效模型,其研究的空间尺度可以从点尺度扩展到陆地生态系统。 在Biome-BGC模型中,对于碳的生物量积累,采用光合酶促反应机理模型计算出每天…

C++设计模式——Facade外观模式

一,外观模式简介 外观模式是一种结构型设计模式, 又称为门面模式,也是一种基于创建对象来实现的模式,为子系统中的各组接口的使用提供了统一的访问入口。 外观模式对外提供了一个对象,让外部客户端(Client)对子系统的…

dataguard 主备切换方式switchover 和 failover 操作步骤

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等) 公众号:老苏畅谈运维 欢迎关注本人公众号,更多精彩与您分享。datagu…

【ATU Book - i.MX8系列 - OS】NXP i.MX Linux Desktop (Ubuntu) BSP 开发环境架设

一、概述 谈论嵌入式系统的开发环境,不得不提起近年来相当实用的 Yocto 建构工具。此工具拥有极为灵活的平台扩展性,广泛的软体套件与社群支持、多平台支援整合性,能够满足开发者特定需求和多种热门的嵌入式系统架设,已成为当今顶…

【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(10)

Hi٩(๑o๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦 (o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机!带你一周内快速走进嵌入式的大门,let’s go! (10&#…

Java学习笔记(多线程):CompetableFuture

本文是自己的学习笔记,主要参考资料如下 https://www.cnblogs.com/dolphin0520/p/3920407.html JavaSE文档 https://blog.csdn.net/ThinkWon/article/details/102508721 1、Overview2、重要参数3、主要方法3.1、创建实例,获取返回值3.2、线程执行顺序相关…

三十九篇:UML与SysML:掌握现代软件和系统架构的关键

UML与SysML:掌握现代软件和系统架构的关键 1. 引言 1.1 为什么系统设计如此关键 在当今快速发展的技术环境中,系统设计的重要性不言而喻。无论是软件开发还是复杂的系统工程,良好的设计是确保项目成功的基石。系统设计不仅关系到功能的实现…

day38动态规划part01| 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

**理论基础 ** 无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了? 其实并没有,我讲的理论基础内容,…