- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章对pytorch中x = x.view(x.size(0), -1) 的理解说明由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1
|
x.view(x.size(
0
),
-
1
)
|
首先,在pytorch中的view()函数就是用来改变tensor的形状的,例如将2行3列的tensor变为1行6列,其中-1表示会自适应的调整剩余的维度 。
1
2
3
4
5
6
7
|
a
=
torch.Tensor(
2
,
3
)
print
(a)
# tensor([[0.0000, 0.0000, 0.0000],
# [0.0000, 0.0000, 0.0000]])
print
(a.view(
1
,
-
1
))
# tensor([[0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000]])
|
在CNN中卷积或者池化之后需要连接全连接层,所以需要把多维度的tensor展平成一维,x.view(x.size(0), -1)就实现的这个功能 。
1
2
3
4
5
6
7
8
9
10
|
def
forward(
self
,x):
x
=
self
.pre(x)
x
=
self
.layer1(x)
x
=
self
.layer2(x)
x
=
self
.layer3(x)
x
=
self
.layer4(x)
x
=
F.avg_pool2d(x,
7
)
x
=
x.view(x.size(
0
),
-
1
)
return
self
.fc(x)
|
卷积或者池化之后的tensor的维度为(batchsize,channels,x,y),其中x.size(0)指batchsize的值,最后通过x.view(x.size(0), -1)将tensor的结构转换为了(batchsize, channels*x*y),即将(channels,x,y)拉直,然后就可以和fc层连接了 。
补充:pytorch中view的用法(重构张量) 。
view在pytorch中是用来改变张量的shape的,简单又好用.
pytorch中view的用法通常是直接在张量名后用.view调用,然后放入自己想要的shape。如 。
1
|
tensor_name.view(shape)
|
Example
1
2
3
4
5
6
|
>>> x
=
torch.randn(
4
,
4
)
>>> x.size()
torch.Size([
4
,
4
])
>>> y
=
x.view(
16
)
>>> y.size()
torch.Size([
16
])
|
1
2
3
|
>>> z
=
x.view(
-
1
,
8
)
# the size -1 is inferred from other dimensions
>>> z.size()
torch.Size([
2
,
8
])
|
(直接填-1表示拉直, 等价于tensor_name.flatten()) 。
1
2
3
|
>>> y
=
x.view(
-
1
)
>>> y.size()
torch.Size([
16
])
|
1
2
3
4
5
6
7
8
9
10
11
|
>>> a
=
torch.randn(
1
,
2
,
3
,
4
)
>>> a.size()
torch.Size([
1
,
2
,
3
,
4
])
>>> b
=
a.transpose(
1
,
2
)
# Swaps 2nd and 3rd dimension
>>> b.size()
torch.Size([
1
,
3
,
2
,
4
])
>>> c
=
a.view(
1
,
3
,
2
,
4
)
# Does not change tensor layout in memory
>>> c.size()
torch.Size([
1
,
3
,
2
,
4
])
>>> torch.equal(b, c)
False
|
注意最后的False,在张量b和c是不等价的。从这里我们可以看得出来,view函数如其名,只改变“看起来”的样子,不会改变张量在内存中的排列.
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.
原文链接:https://blog.csdn.net/TYUT_xiaoming/article/details/100799527 。
最后此篇关于对pytorch中x = x.view(x.size(0), -1) 的理解说明的文章就讲到这里了,如果你想了解更多关于对pytorch中x = x.view(x.size(0), -1) 的理解说明的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
ValueError Traceback (most recent call last) in 23 out
在 CSS 中,我从来没有真正理解为什么会发生这种情况,但每当我为某物分配 margin-top:50% 时,该元素就会被推到页面底部,几乎完全消失这一页。我假设 50% 时,该元素将位于页面的中间位
我正在尝试在 pyTorch 中训练我的第一个神经网络(我不是程序员,只是一个困惑的化学家)。 网络本身应该采用 1064 个元素向量并用 float 对它们进行评级。 到目前为止,我遇到了各种各样的
我有一个简单的问题。如何在 3 个维度上移动线性阵列?这似乎太有效了,但在 X 和 Y 轴上我遇到了索引问题。我想这样做的原因很简单。我想创建一个带有 block 缓冲区的体积地形,所以我只需要在视口
我正在尝试运行我购买的一本关于 Pytorch 强化学习的书中的代码。 代码应该按照本书工作,但对我来说,模型没有收敛,奖励仍然为负。它还会收到以下用户警告: /home/user/.local/li
我目前正在使用 this repo使用我自己的数据集执行 NLP 并了解有关 CNN 的更多信息,但我一直遇到有关形状不匹配的错误: ValueError: Target size (torch.Si
UIScrollView 以编程方式设置,请不要使用 .xib 文件发布答案。 我的 UIScrollView 位于我的模型类中,所以我希望代码能够轻松导入到另一个项目中,例如。适用于 iPad 或旋
我在我的 Ruby on Rails 应用程序(版本 4.3.1)中使用 Bootstrap gem。我最近发现了响应式字体大小功能 (rfs)。根据 Bootstrap 文档,它刚刚在 4.3 版中
这个问题不太可能帮助任何 future 的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
size 之间的语义区别是什么?和 sizeIs ?例如, List(1,2,3).sizeIs > 1 // true List(1,2,3).size > 1 // true Luis 在 c
我想从 div 中删除一些元素属性。我的 div 是自动生成的。我想遍历每个 div 和子 div,并想删除所有 font-size (font-size: Xpx)和 size里面font tag
super ,对 Python 和一般编程 super 新手。我有一个问题应该很简单。我正在使用一本使用 Python 3.1 版的 python 初学者编程书。 我目前正在写书中的一个程序,我正在学
我无法从 NativeBase 更改缩略图的默认大小。我可以显示默认圆圈,即小圆圈和大圆圈,但我想显示比默认大小更大的圆圈。这是我的缩略图代码: Prop 大小不起作用,缩略图仍然很小。 我的 Na
我是pytorch的新手。在玩张量时,我观察到了两种类型的张量- tensor(58) tensor([57.3895]) 我打印了它们的形状,输出分别是 - torch.Size([]) torch
这是我的 docker images 命令的输出: $ docker images REPOSITORY TAG IMAGE ID CREATED
来自 PriorityQueue 的代码: private E removeAt(int i) { assert i >= 0 && i < size; modCount++;
首先,在我的系统上保留以下内容:sizeof(char) == 1 和 sizeof(char*) == 4。很简单,当我们计算下面类的总大小时: class SampleClass { char c
我正在编写一个游戏来查找 2 个图像之间的差异。我创建了 CCSprite 的子类 Spot。首先我尝试创建小图像并根据其位置添加自身,但后来我发现位置很难确定,因为很难避免 1 或 2 个像素的偏移
我有一个 Tumblr Site每个帖子的宽度由标签决定。 如果一篇文章被标记为 #width200,CSS 类 .width200 被分配。 问题是,虽然帖子的宽度不同,但它们都使用主题运算符加载相
这个问题在这里已经有了答案: What is the ideal growth rate for a dynamically allocated array? (12 个答案) 关闭 8 年前。 我
我是一名优秀的程序员,十分优秀!