mxnet NDArray

MXNet中NDArray的一些基础操作 1.1 NDArray基本用法 from mxnet import nd #创建行向量 x=nd.arange(10) print(x) #获取形状 print(x.shape) #获取元素总数 print(x.size) #改变形状 y=x.reshape((2,5)) print(y) #元素全0或1 a0=nd.zeros((2,3,4)) a1=nd.ones((2,3)) #列表方式创建... 阅读详情
import mxnet as mx
import pickle as pkl
import numpy as np
import math

# create a 1-dimensional array with a python list
def demo1():
	a = mx.nd.array([1,2,3])
	b = mx.nd.array([[1,2,3], [2,3,4]])

	print(a.shape)
	print(a.dtype)
	print(a.size)
	print(a.context)

	print(b.shape)
	print(b.dtype)
	print(b.size)
	print(b.context)
	
	print("##########################33")
	c = np.arange(15).reshape(3,5)
	print(np.arange(15))
	print(c)
	a = mx.nd.array(c)	# default float32
	print(a)
	
def demo2():
	# float32 is used in default
	a = mx.nd.array([1,2,3])
	# create an int32 array
	b = mx.nd.array([1,2,3], dtype=np.int32)
	# create a 16-bit float array
	c = mx.nd.array([1.2, 2.3], dtype=np.float16)
	print(a.dtype, b.dtype, c.dtype)
	
	print("***********************************")
	# create a 2-dimensional array full of zeros with shape (2,3)
	a = mx.nd.zeros((2,3))
	# create a same shape array full of ones
	b = mx.nd.ones((2,3))
	# create a same shape array with all elements set to 7
	c = mx.nd.full((2,3), 7)
	# create a same shape whose initial content is random and
	# depends on the state of the memory
	d = mx.nd.empty((2,3))
	e = mx.nd.arange(18).reshape((3,2,3))
	
	print("a: ")
	print(a.asnumpy())
	print("b: ")
	print(b.asnumpy())
	print("c: ")
	print(c.asnumpy())
	print("d: ")
	print(d.asnumpy())
	print("e: ")
	print(e.asnumpy())
	
def demo3():
	a = mx.nd.ones((2,3))
	b = mx.nd.ones((2,3))
	# elementwise plus
	c = a + b
	print("c:")
	print(c.asnumpy())
	# elementwise minus
	d = - c
	print("d:")
	print(d.asnumpy())
	
	# elementwise pow and sin, and then transpose
	e = mx.nd.sin(c**2).T
	print("e:")
	print(e.asnumpy())
	
	# elementwise max
	f = mx.nd.maximum(a, c)
	print(f.asnumpy())
	
	print("###################################33333")
	a = mx.nd.arange(4).reshape((2,2))
	print(a.asnumpy())
	b = a * a
	#print(b.asnumpy())
	c = mx.nd.dot(a,a)
	print("b: %s, \n c: %s" % (b.asnumpy(), c.asnumpy()))
	
	#############################
	print("####################################3")
	a = mx.nd.ones((2,2))
	b = mx.nd.ones(a.shape)
	b += a
	print(b.asnumpy())

def demo4():
	# 索引和切片
	a = mx.nd.array(np.arange(6).reshape(3,2))
	print(a.asnumpy())
	a[1:2] = 1
	print(a[:].asnumpy())
	d = mx.nd.slice_axis(a, axis=1, begin=1, end=2)
	print(d.asnumpy())
	
	# 形状修改
	a = mx.nd.array(np.arange(24))
	b = a.reshape((2,3,4))
	print(b.asnumpy())
	
	print("##################################")
	a = mx.nd.ones((2,3))
	b = mx.nd.ones((2,3))*2
	c = mx.nd.concat(a,b)
	print(c.asnumpy())
	
	# 分解
	a = mx.nd.ones((2,3))
	b = mx.nd.sum(a)
	print(b.asnumpy())	# 求和
	c = mx.nd.sum_axis(a, axis=1) # 每一行求和
	print(c.asnumpy())
	
	# 广播
	a = mx.nd.array(np.arange(6).reshape(6,1))
	b = a.broadcast_to((6,4))  #
	print(b.asnumpy())
	
	c = a.reshape((2,1,1,3))
	d = c.broadcast_to((2,2,2,3))
	print(d.asnumpy())
	
	# 复制
	a = mx.nd.ones((2,2))
	b = a
	print("b is a:", b is a)
	b = a.copy()
	print("b is a:", b is a)
	
	print("##################")
	b = mx.nd.ones(a.shape)
	c = b
	c[:] = a
	d = b
	a.copyto(d)
	#(c is b, d is b)  # Both will be True
	
def demo5():
	gpu_device=mx.gpu() # Change this to mx.cpu() in absence of GPUs.
	
	# # in default mx.cpu() is used
	a = mx.nd.ones((100,100))
	b = mx.nd.ones((100,100))
	c = a + b
	print(a.context)
	print(c)
	
	# use gpu
	with mx.Context(gpu_device):
		a = mx.nd.ones((100,100))
		b = mx.nd.ones((100,100))
		c = a + b
		print(a.context)
		print(b.context)
		print(c.context)
		print(c)
	
	#我们也可以在创建数组时明确地指定上下文:
	a = mx.nd.ones((100, 100), gpu_device)
	print(a.context)
	
	#通常MXNet的计算需要两个数组位于同一个设备,有多种方法可以在不同设备之间拷贝数据
	a = mx.nd.ones((100,100), mx.cpu())
	b = mx.nd.ones((100,100), gpu_device)
	c = mx.nd.ones((100,100), gpu_device)
	a.copyto(c)  # copy from CPU to GPU
	d = b + c
	e = b.as_in_context(c.context) + c  # same to above
	
# 序列化 从/到 (分布式)文件系统
def demo6():
	a = mx.nd.ones((2, 3))
	# pack and then dump into disk
	data = pkl.dumps(a)
	pkl.dump(data, open('tmp.pickle', 'wb'))
	
	# load from disk and then unpack
	data = pkl.load(open('tmp.pickle', 'rb'))
	b = pkl.loads(data)
	print(b.asnumpy())
	
	a = mx.nd.ones((2,3))
	b = mx.nd.ones((5,6))
	mx.nd.save("temp.ndarray", [a,b]) # 保存列表
	c = mx.nd.load("temp.ndarray")
	print(c)
	print(len(c))
	print(c[0])
	print(c[1])
	
	print("####################################")
	# 词典(dict)
	d = {'a':a, 'b':b}
	mx.nd.save("tempDic.ndarray", d)
	c = mx.nd.load("tempDic.ndarray")
	print(c)
	print(len(c))
	print()
	print(c['a'])
	print(c['b'])
	
def demo7():
	# 创建占位符a和b及其名称
	a = mx.sym.Variable('a')
	b = mx.sym.Variable('b')
	c = a + b
	print(a, b, c)
	
def main():
	#demo1()
	#demo2()
	#demo3()
	#demo4()
	#demo5()
	#demo6()
	demo7()
	
if __name__ == '__main__':
	main()

 

MXNet中NDArray数据相关操作 这里作者是使用juputer notebook来学习,对比于pycharm和它的控制台来说,对于较大型的项目用pycharm可以实现分文件管理,pycharm的控制台适合运行单行代码,jupyter notebook因为对于单个模块运行之后都会有一个输出直观看到结果; 阅读详情

相关推荐

mxnet代码剖析之--ndarray篇

/// ----------------------------------------------------------------------- struct Chunk Storage::Handle shandle; /// 存储管理器句柄 (ptr, size, ctx),负责实际存储空间的开辟管理等 Engine::VarHandle var; /// 执行引擎变量句柄(实现

slamer的专栏 3568

MxNet 学习笔记(1):MxNet中的NDArray

NDArray在MxNet中,NDArray是所有数学运算的核心数据结构,与Numpy中的ndarray相似。与numpy相比,MxNet中的NDArray有以下的优点: 对平台通用:在CPU GPU下都兼容 可以自动地并行化 NDArray的创建在Mxnet中,NDArray实质上指的是mx.nd.array,并且有以下几种常用的属性: ndarray.shape: The dimensions

richard_che的博客 1万+

电商数据分析19——数据分析在电商平台价格弹性研究中的应用

价格弹性是一个衡量产品价格变化对销量影响的经济学指标,对于电商平台而言,深入理解和有效运用价格弹性,对于制定竞争策略、优化产品定价具有重要意义。随着大数据时代的到来,通过数据分析研究产品的价格弹性,成为了电商企业制定价格策略、调整市场定位、优化促销活动的重要依据。

theskylife的博客 2836

多层感知机(MLP)的构建与实现

多层感知机的用途,主要介绍隐藏层的实现,以及激活函数的作用,多层感知机也是深度学习模型的基础

深度学习领域优质创作者,优快云博客专家 3081

Jetson AGX Orin到手必看:DP线选错黑屏、SSD不识别?这篇避坑指南帮你一次搞定

本文详细介绍了Jetson AGX Orin开发套件的硬件避坑指南,涵盖开箱检查、DP线选择、SSD兼容性等关键问题。通过实测数据和实用技巧,帮助开发者避免黑屏、存储不识别等常见问题,提升开发效率。特别推荐符合VESA认证的DP 1.4a线缆和兼容性优秀的SSD型号,确保设备稳定运行。

weixin_33696822的博客 434

手把手教你设计T型和Π型衰减器:从理论计算到实际搭建(含误差分析)

本文详细介绍了T型和Π型衰减器的设计方法,从理论计算到实际搭建,包括电阻值推导、元件选择技巧及误差分析。通过实例演示如何设计50Ω系统中的10dB衰减器,并提供了高频应用和优化策略,帮助电子工程师掌握阻抗匹配与信号衰减的核心技术。

weixin_33737774的博客 396

MXNet官方文档中文版教程(2):GPUCPU张量计算(NDArray)

文档英文原版参见NDArray - Imperative tensor operations on CPU/GPU 在MXNet中,NDArray 是所有数学计算的核心数据结构。每个NDArray 代表了一个多维的,固定大小的齐次数组。如果你对python的科学计算包Numpy熟悉的话,你会发现mxnet.ndarray与numpy.ndarray在诸多方面十分相似。就像对应的NumPy数据结构,M

青青韶华 1万+

第二章-Ethernet/IP基本概念

在I/O连接中,一旦连接建立,就不会有请求-响应数据,只会按照连接建立时指定的生产触发器所确定的时间间隔生产和消耗带有ConnectionID的数据。连接是通过连接管理器对象的Forward请求服务建立的,ForwardOpen请求包含所有连接参数,包括传输类、生产触发器、定时信息、电子密钥和连接ID。I/O适配器:I/O适配器从I/O扫描器接收隐式通信连接请求,然后以请求的速率生成I/O数据。I/O扫描器:启动与I/O适配器的隐式通信,需要处理连接的配置以及如何配置适配器。扫描器还支持启动显式报文。

_Nooice的博客 1233

『开发技术』MXNet中np.array与ndarray相互转换

0.背景介绍 在MXNet中,NDArray是一个类,也是存储和变换数据的主要工具。如果你之前用过NumPy,你会发现NDArray和NumPy的多维数组非常类似。然而,NDArray提供GPU计算和自动求梯度等更多功能,这些使NDArray更加适合深度学习。类似于TensorFlow的tensor与pytorch中的variable,学习NumPy操作方式,实现GPU计算,由于NumPy不支持...

简明AI工作室 4950

46、搭建与配置FTP服务器全攻略

本文详细介绍了如何搭建与配置FTP服务器,以vsftpd为例,涵盖了FTP基础概念、安装步骤、服务控制、安全设置、用户权限管理、文件上传支持、互联网共享配置、客户端使用以及常见问题解决等内容。旨在帮助用户高效、安全地实现文件共享与管理。

time3的博客 88

RockChip Android14 修改LCD背光最大值

在调试LCD屏时时长会出现硬件不匹配,导致电流过大,屏幕发热严重。在不调整硬件的情况下,我们可以通过修改软件,降低LCD背光最大值来实现适配。我们都知道LCD屏背光是靠pwm来控制,一般来说最大值可以设置为255,针对上述问题,我们可以通过软件来降低该值,比如200,100等等。

qq_34968572的博客 631

MXNet官方文档教程(5):CPU&GPU多维数组

NDArray教程 MXNet中一个主要的对象就是mxnet.ndarray(缩写mxnet.nd)中的多维数组。如果你对python的科学计算包Numpy熟悉的话,你会发现mxnet.ndarray与numpy.ndarray在诸多方面十分相似。源网址:CPU/GPU Array Manipulation   基础 多维数组是一组同类型数据的集合,例如一个3D空间中的点的坐标值[1, 2

Catalyst_ZX的博客 5862

【数据集】中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

WW、forever的博客 2598

MXNet中的NDArray

  想要跑代码可以参考这里搭建环境,同时再查一下关于jupyter notebook的基本操作即可。本文是笔记以及一些自己的补充。   在MXNet中,NDArray是一个类,也是存储和变换数据的主要工具,和NumPy的多维数组类似,提供GPU计算和自动求梯度等功能。 创建NDArray   首先从MXNet导入ndarray模块,nd是ndarray的缩写形式,两种导入方式均可,但要注意之后使用的时候前缀要对应导入的形式。 from mxnet import ndarray #之后要使用ndarray

银域果酒的博客 900

Python 爬虫实战:亚马逊 + eBay 商品信息跨平台抓取(价格 / 销量 / 评价对比)

亚马逊和 eBay 是全球知名的电商平台,拥有海量的商品信息。对于消费者来说,比较不同平台上的商品价格、销量和用户评价可以帮助他们找到性价比最高的商品。对于商家而言,了解竞争对手的商品信息有助于优化自身的产品策略和定价策略。然而,手动在两个平台上逐一比较商品信息是非常耗时且低效的。因此,开发一个能够自动抓取并对比这两个平台商品信息的爬虫工具具有重要的实际意义。

yansideyucsdn的博客 617

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

动手学mxnet系列之NDArray

NDArray是MXNet的基础,无论多么复杂的网络,都是建立在NDArray上面的,NDArray就好像是盖深度学习这座大厦的砖~

小菜鸟的AI之路 1270

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

mxnet NDArray

https://www.cnblogs.com/ronny/p/8514194.html MXNet的NDArray与Numpy中的ndarray极为相似,NDAarray为MXNet中的各种数学计算提供了核心的数据结构,NDArray表示一个多维的、固定大小的数组,并且支持异构计算。那为什么不直接使用Numpy呢?MXNet的NDArray提供额外提供了两个好处: 支持异构计算,数据可以在CPU,GPU,以及多GPU机器的硬件环境下高效的运算 NDArray支持惰性求值,对于复杂的操作,可以在有多个

是鲤鱼啊 256

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MxNet与numpy 的ndarray区别

NDArray APINDArray 程序包 (mxnet.ndarray) 包含类似于 numpy.ndarray 的 张量计算包. 它的语法很相近, 除了增加了一些处理 I/O 和多设备的调用.Create NDArray类似 numpy, 你可以按照下面的方式来创建 mxnet.ndarray : import mxnet as mx # all-zero array of dimensi

tealex的专栏 3706

linux mxnet 查询_MXNet之NDArray 速查

MXNet 中的库 NDArray 类似于 NumPy,区别在于 NDArray 可以利用 GPU 进行加速以及自动求梯度创建 NDArrayfrom mxnet import nd# 创建向量x = nd.arange(12)# 获得 x 的形状x.shape# 获得 x 中的元素数x.size# 将 x 改为 3x4 的矩阵X = x.reshape((3,4)) # x.reshape((-...

weixin_39586649的博客 127

使用MXNET的NDArray处理数据

NDArray.ipynb NDArray介绍 机器学习处理的对象是数据,数据一般是由外部传感器(sensors)采集,经过数字化后存储在计算机中,可能是文本、声音,图片、视频等不同形式。 这些数字化的数据最终会加载到内存进行各种清洗,运算操作。 几乎所有的机器学习算法都涉及到对数据的各种数学运算,比如:加减、点乘、矩阵乘等。所以我们需要一个易用的、高效的、功能强大的工具来处理这些数据并组...

SPARROW的博客 793

MXNET源码中NDArray数据的获取和打印

虽然本人也很想写一个系列的分析文章,奈何水平不足,零零碎碎学到一点就写一点吧 本人是想学习MXNET的源码,首先想要添加一些打印,debug一下,第一个问题是如何在C++源码中打印出NDArray结构的值, 今天尝试如下,可以打印出来, 文件 incubator-mxnet/src/c_api/c_api.cc 中,函数MXNDArraySlice修改如下: int MXNDArrayS...

人工智能 974

NDArray Tutorial - mxnet

根据 mxnet documentation-NDArray NDArray 是 mxnet 用于计算的数据结构. 可类比于 tensorflow 的 tensor,caffe 的 blob. 看到 mxnet 中的 NDArray 使用与 numpy 差别不大, 操作都很简明. 这个网页都是基础操作, 我记录了其中较关键的部分.创建 NDArrayNDArray 既可直接创建, 也可以从 n

tealex的专栏 776

mxnet学习二、基础(了解NDArray)

文章目录一、学习系列传送门二、了解NDArray 本博客参考《MXNet深度学习实战》所做的系列笔记 一、学习系列传送门 之前的笔记: 1、mxnet学习一、数据制作以及读取 二、了解NDArray NDArray是mxnet框架中数据流的基础结构,和python下的numpy非常相似,可以看做GPU下的numpy。 1、定义NDArray a = mx.nd.array([[1,2],[4,3]...

hjxu2016的博客 428

ndarray是什么_Day182:使用MXNet的NDArray来处理数据

NDArray介绍机器学习处理的对象是数据,数据一般是由外部传感器(sensors)采集,经过数字化后存储在计算机中,可能是文本、声音,图片、视频等不同形式。这些数字化的数据最终会加载到内存进行各种清洗,运算操作。几乎所有的机器学习算法都涉及到对数据的各种数学运算,比如:加减、点乘、矩阵乘等。所以我们需要一个易用的、高效的、功能强大的工具来处理这些数据并支持各种复杂的数学运算。在C/C++中已经开...

weixin_39575054的博客 171

使用MXNet的NDArray来处理数据

NDArray.ipynb NDArray介绍 机器学习处理的对象是数据,数据一般是由外部传感器(sensors)采集,经过数字化后存储在计算机中,可能是文本、声音,图片、视频等不同形式。 这些数字化的数据最终会加载到内存进行各种清洗,运算操作。 几乎所有的机器学习算法都涉及到对数据的各种数学运算,比如:加减、点乘、矩阵乘等。所以我们需要一个易用的、高效的、功能强大的工具来处理这些数据并组...

云中寻雾的博客 584
上一篇: python文件读写1
下一篇: mnist数据集保存为图片
龚慧林
博客等级 码龄14年 77粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值