pytorch中的numel函数怎样使用?
Admin 2021-09-06 群英技术资讯 2635 次浏览
pytorch是一个python优先的深度学习框架,用于自然语言应用程序。这篇文章主要介绍pytorch中的numel函数如何使用的内容,下文有numel函数用法实例,感兴趣的朋友可以参考,接下来小编带着大家一起了解看看。
import torch
x = torch.randn(3,3)
print("number elements of x is ",x.numel())
y = torch.randn(3,10,5)
print("number elements of y is ",y.numel())
输出:
number elements of x is 9
number elements of y is 150
27和150分别位x和y中各有多少个元素或变量
补充:pytorch获取张量元素个数numel()的用法
numel就是"number of elements"的简写。
import torch a = torch.randn(1, 2, 3, 4) b = a.numel() print(type(b)) # int print(b) # 24
通过numel()函数,我们可以迅速查看一个张量到底又多少元素。
补充:pytorch 卷积结构和numel()函数
from torch import nn
class CNN(nn.Module):
def __init__(self, num_channels=1, d=56, s=12, m=4):
super(CNN, self).__init__()
self.first_part = nn.Sequential(
nn.Conv2d(num_channels, d, kernel_size=3, padding=5//2),
nn.Conv2d(num_channels, d, kernel_size=(1,3), padding=5//2),
nn.Conv2d(num_channels, d, kernel_size=(3,1), padding=5//2),
nn.PReLU(d)
)
def forward(self, x):
x = self.first_part(x)
return x
model = CNN()
for m in model.first_part:
if isinstance(m, nn.Conv2d):
# print('m:',m.weight.data)
print('m:',m.weight.data[0])
print('m:',m.weight.data[0][0])
print('m:',m.weight.data.numel()) #numel() 计算矩阵中元素的个数
结果:
m: tensor([[[-0.2822, 0.0128, -0.0244],
[-0.2329, 0.1037, 0.2262],
[ 0.2845, -0.3094, 0.1443]]]) #卷积核大小为3x3
m: tensor([[-0.2822, 0.0128, -0.0244],
[-0.2329, 0.1037, 0.2262],
[ 0.2845, -0.3094, 0.1443]]) #卷积核大小为3x3
m: 504 # = 56 x (3 x 3) 输出通道数为56,卷积核大小为3x3
m: tensor([-0.0335, 0.2945, 0.2512, 0.2770, 0.2071, 0.1133, -0.1883, 0.2738,
0.0805, 0.1339, -0.3000, -0.1911, -0.1760, 0.2855, -0.0234, -0.0843,
0.1815, 0.2357, 0.2758, 0.2689, -0.2477, -0.2528, -0.1447, -0.0903,
0.1870, 0.0945, -0.2786, -0.0419, 0.1577, -0.3100, -0.1335, -0.3162,
-0.1570, 0.3080, 0.0951, 0.1953, 0.1814, -0.1936, 0.1466, -0.2911,
-0.1286, 0.3024, 0.1143, -0.0726, -0.2694, -0.3230, 0.2031, -0.2963,
0.2965, 0.2525, -0.2674, 0.0564, -0.3277, 0.2185, -0.0476, 0.0558]) bias偏置的值
m: tensor([[[ 0.5747, -0.3421, 0.2847]]]) 卷积核大小为1x3
m: tensor([[ 0.5747, -0.3421, 0.2847]]) 卷积核大小为1x3
m: 168 # = 56 x (1 x 3) 输出通道数为56,卷积核大小为1x3
m: tensor([ 0.5328, -0.5711, -0.1945, 0.2844, 0.2012, -0.0084, 0.4834, -0.2020,
-0.0941, 0.4683, -0.2386, 0.2781, -0.1812, -0.2990, -0.4652, 0.1228,
-0.0627, 0.3112, -0.2700, 0.0825, 0.4345, -0.0373, -0.3220, -0.5038,
-0.3166, -0.3823, 0.3947, -0.3232, 0.1028, 0.2378, 0.4589, 0.1675,
-0.3112, -0.0905, -0.0705, 0.2763, 0.5433, 0.2768, -0.3804, 0.4855,
-0.4880, -0.4555, 0.4143, 0.5474, 0.3305, -0.0381, 0.2483, 0.5133,
-0.3978, 0.0407, 0.2351, 0.1910, -0.5385, 0.1340, 0.1811, -0.3008]) bias偏置的值
m: tensor([[[0.0184],
[0.0981],
[0.1894]]]) 卷积核大小为3x1
m: tensor([[0.0184],
[0.0981],
[0.1894]]) 卷积核大小为3x1
m: 168 # = 56 x (3 x 1) 输出通道数为56,卷积核大小为3x1
m: tensor([-0.2951, -0.4475, 0.1301, 0.4747, -0.0512, 0.2190, 0.3533, -0.1158,
0.2237, -0.1407, -0.4756, 0.1637, -0.4555, -0.2157, 0.0577, -0.3366,
-0.3252, 0.2807, 0.1660, 0.2949, -0.2886, -0.5216, 0.1665, 0.2193,
0.2038, -0.1357, 0.2626, 0.2036, 0.3255, 0.2756, 0.1283, -0.4909,
0.5737, -0.4322, -0.4930, -0.0846, 0.2158, 0.5565, 0.3751, -0.3775,
-0.5096, -0.4520, 0.2246, -0.5367, 0.5531, 0.3372, -0.5593, -0.2780,
-0.5453, -0.2863, 0.5712, -0.2882, 0.4788, 0.3222, -0.4846, 0.2170]) bias偏置的值
'''初始化后'''
class CNN(nn.Module):
def __init__(self, num_channels=1, d=56, s=12, m=4):
super(CNN, self).__init__()
self.first_part = nn.Sequential(
nn.Conv2d(num_channels, d, kernel_size=3, padding=5//2),
nn.Conv2d(num_channels, d, kernel_size=(1,3), padding=5//2),
nn.Conv2d(num_channels, d, kernel_size=(3,1), padding=5//2),
nn.PReLU(d)
)
self._initialize_weights()
def _initialize_weights(self):
for m in self.first_part:
if isinstance(m, nn.Conv2d):
nn.init.normal_(m.weight.data, mean=0.0, std=math.sqrt(2/(m.out_channels*m.weight.data[0][0].numel())))
nn.init.zeros_(m.bias.data)
def forward(self, x):
x = self.first_part(x)
return x
model = CNN()
for m in model.first_part:
if isinstance(m, nn.Conv2d):
# print('m:',m.weight.data)
print('m:',m.weight.data[0])
print('m:',m.weight.data[0][0])
print('m:',m.weight.data.numel()) #numel() 计算矩阵中元素的个数
结果:
m: tensor([[[-0.0284, -0.0585, 0.0271],
[ 0.0125, 0.0554, 0.0511],
[-0.0106, 0.0574, -0.0053]]])
m: tensor([[-0.0284, -0.0585, 0.0271],
[ 0.0125, 0.0554, 0.0511],
[-0.0106, 0.0574, -0.0053]])
m: 504
m: tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0.])
m: tensor([[[ 0.0059, 0.0465, -0.0725]]])
m: tensor([[ 0.0059, 0.0465, -0.0725]])
m: 168
m: tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0.])
m: tensor([[[ 0.0599],
[-0.1330],
[ 0.2456]]])
m: tensor([[ 0.0599],
[-0.1330],
[ 0.2456]])
m: 168
m: tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0.])
以上就是关于python的numel函数的用法介绍,上述实例有一定的参考价值,有需要的朋友可以借鉴参考,希望对大家学习python有帮助,想要了解更多python函数的内容,请搜索群英网络以前的文章或继续浏览其他相关的文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Python内置函数-filter()函数。filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程。在这个过程中,不同的数据源返回的数据格式各不相同,有 JSON 格式,有 XML 文档,不过大部分还是 HTML 文档,HTML 经常会混杂有转移字符,这些字符我们需要把它转义成真正的字符
为什么会报错“UnicodeEncodeError: & 39;ascii& 39; codec can& 39;t encode characters in position 0-1: ordinal not in ra
大家好,本篇文章主要讲的是Python自动爬取图片并保存实例代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
这篇文章主要介绍了python求解三角形第三边长实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008