小编Jes*_*eTG的帖子

C++和Java中"泛型"类型之间有什么区别?

Java有泛型,C++提供了一个非常强大的编程模型template.那么,C++和Java泛型有什么区别?

c++ java generics language-features templates

150
推荐指数
6
解决办法
9万
查看次数

比较std :: functions是否相等?

我怎样才能比较两个C++ 11个std::functions的operator==,并返回true如果两个所述functions请参阅同一个函数指针?

c++ function-pointers c++11 std-function

32
推荐指数
3
解决办法
2万
查看次数

如何正确地为PyTorch中的嵌入,LSTM和线性层提供输入?

我需要澄清一下如何使用torch.nn模块的不同组件正确准备批量培训的输入.具体来说,我正在寻找为seq2seq模型创建编码器 - 解码器网络.

假设我有一个包含这三层的模块,按顺序:

  1. nn.Embedding
  2. nn.LSTM
  3. nn.Linear

nn.Embedding

输入: batch_size * seq_length
输出: batch_size * seq_length * embedding_dimension

我在这里没有任何问题,我只想明确输入和输出的预期形状.

nn.LSTM

输入: seq_length * batch_size * input_size(embedding_dimension在这种情况下)
输出: seq_length * batch_size * hidden_size
last_hidden_​​state: batch_size * hidden_size
last_cell_state: batch_size * hidden_size

要使用Embedding图层的输出作为图层的输入LSTM,我需要转置轴1和2.

我在网上发现的许多例子都有类似的东西x = embeds.view(len(sentence), self.batch_size , -1),但这让我很困惑.该视图如何确保同一批次的元素保留在同一批次中?当尺寸len(sentence)self.batch尺寸相同时会发生什么?

nn.Linear

输入: batch_size x input_size(在这种情况下LSTM的hidden_​​size或??)
输出: batch_size xoutput_size

如果我只需要last_hidden_stateLSTM话,我可以把它作为输入nn.Linear.

但是,如果我想利用输出(其中包含所有中间隐藏状态),那么我需要改变 …

lstm pytorch

20
推荐指数
1
解决办法
7601
查看次数

错误:无法mmap文件:vmlinux

在新安装的虚拟机中,我在编译x86架构的内核时遇到此错误:

$ Could not mmap file: vmlinux

$ make: *** [vmlinux] Error 1
Run Code Online (Sandbox Code Playgroud)

这是我第一次看到它.我已经将大小/proc/sys/kernel/shmmax增加到128MB,但它没有解决问题.有任何想法吗?

谢谢!:)

linux kernel mmap

11
推荐指数
2
解决办法
2426
查看次数

哪些主动使用的C++环境缺乏(大多数,如果不是全部)标准库的支持?

寻找没有标准库的特定C++环境(编译器,操作系统,硬件等)(例如"Nintendo 3DS的x版本gcc")

某些C++库(如Box2D或TinyXML2)旨在实现超级便携,如果有的话,只使用很少的标准库.但是,我并不完全理解这种方法. 哪些主动使用的C++环境缺乏(大多数,如果不是全部)标准库的支持?

c++ stl standard-library c++-standard-library

7
推荐指数
2
解决办法
192
查看次数

QML的Component和Instantiator之间的区别?

QML类型ComponentInstantiator似乎做类似的事情; 按需创建QML对象,而不是解析其定义时. 那有什么区别? 为什么我要使用一个而不是另一个?

qt qml qt-quick qtquick2 qqmlcomponent

5
推荐指数
1
解决办法
889
查看次数

"删除此"到一个用std :: shared_ptr分配的对象?

我知道,delete this无论何时new使用传统指针分配内容,都可以在C++中说出来.事实上,我也知道如果你仔细处理它是很好的做法.我可以有一个物体说它delete this是否由一个人持有std::shared_ptr?这应该叫析构函数,对吗?为了给你一个想法,我正在做一个船可以发射导弹的游戏,我想让导弹自己删除.

c++ memory-management shared-ptr c++11

4
推荐指数
1
解决办法
2494
查看次数

Python:迭代一个集合,所以我们不会多次比较相同的对象?

所以我正在写一个游戏.以下是碰撞检测的工作原理; 有一个不可见的网格,并且根据它们的位置在单元格中添加和删除对象(或者更确切地说,它们的引用).碰撞比较仅在同一单元格中的对象之间进行.

引用存储在set每个单元所拥有的Python 中.它必须是一套.当检测到碰撞时,它存储在Collision具有三个属性的对象中; 碰撞的两个物体和碰撞发生的时间.当考虑所有碰撞时,它们按时间排序,然后进行处理.

这是各个单元用于检查冲突的循环;

#grid.collisions is a list of recorded collisions, and self.objects is the set
#of objects currently in this cell.

for i in self.objects:
    for j in self.objects:
        if id(i) != id(j) and pygame.sprite.collide_rect(i, j):
            grid.collisions.append(Collision(i, j))
Run Code Online (Sandbox Code Playgroud)

问题是,这比较了两个相同的两个对象; 如果我们有一套{1, 2, 3, 4},我们会比较(1, 2) (2, 1).不仅如此,这些重复的比较被添加到总冲突列表中,从而打破了整个系统!

我知道我不能索引集合,这意味着我不能做像for j in range(i, len(self.objects))在哪里i,j都是整数. 如何解决此限制以确保同一组中的两个对象不进行两次比较? 我无法删除这些集合中的对象; 只有在对象离开网格单元格时才会删除它们.

由于每帧都会处理这些冲突,我宁愿避免创建新对象(真正的代码不像Collisions示例那样创建新的,我只是简化它以便于阅读).我可以删除重复的比较,但是将每次碰撞与其他碰撞进行比较会产生很多开销.

python iteration comparison set

3
推荐指数
1
解决办法
4479
查看次数

在不创建任何对象副本的情况下展平Python列表?

所以我正在用Python编写一个游戏,而我正在尝试解决的问题要求我将2D列表(即列表列表)转换为一维列表.我已经看到了几种方法,但我不知道是否有任何方法可以创建其中包含的任何对象的副本,或者只是新引用.说实话,Python标准库让我感到困惑,因为对象/序列是否被复制或者只是被引用填充并不总是显而易见的.

这些是关于我的特殊情况的假设;

  • 我们可以假设我的2D列表(如果表示为矩阵)是完全矩形的.
  • 如果我能得到一个上述假设不正确的解决方案,那就太好了,但目前并不需要.
  • 无需担心3D +列表.

谢谢!

python arrays list flatten multidimensional-array

3
推荐指数
1
解决办法
517
查看次数

仅通过命令行在Windows上运行CMake生成的INSTALL.vcxproj?

我有一个C++程序,我正在尝试在AppVeyor上构建和部署(因此,我没有可用的GUI工具).我的项目的依赖项每个都使用CMake作为他们的构建系统,CMake(默认情况下)在Windows上生成Visual Studio项目文件.

其中一个生成的项目文件被命名INSTALL.vcxproj,这可能会在某处或多或少地标准化安装依赖项. 如何执行INSTALL.vcxproj仅使用命令行的构建过程?

注意:我没有与Visual Studio项目文件结合.如果使用另一台发电机更方便,那也没关系(如果你能向我解释如何).

c++ windows command-line cmake visual-studio

3
推荐指数
2
解决办法
2680
查看次数

如何在Qt/C++中可靠地杀死一个线程?

我正在制作一个桌面编程游戏,包括C++ 11,Qt 5.6(一旦V-Play支持它,很快就会有5.7)和QML.用户将能够编写任意代码来解决难题; 但是,代码应该完全沙箱化,并且不会导致应用程序其余部分出现问题.

所以我实例化了一个脚本引擎,它的环境我完全控制并通过它运行播放器的代码.我不会说什么脚本引擎,因为我不希望解决方案依赖于引擎(另外,我可能支持多种语言).当玩家点击"提交"时,我会异步运行脚本,以便游戏的其余部分仍然响应.

但这是我的问题:如果玩家的代码需要很长时间才能运行会发生什么?或者更糟糕的是,如果它是一个无限循环呢? 玩家在学习时犯错误,所以"他们不应该这样做" 在这里不是一个有效的答案.

所以我只是让玩家随意终止他们的代码,很好. 但是,如何在不冒未定义的行为,内存泄漏,崩溃或其他可能对游戏产生负面影响的事情的情况下做到这一点?

相关的是以下内容:

  • 解决方案应该是多平台的.
  • 该解决方案应该取决于我使用的是什么样的脚本引擎.
  • 我不是在线程之间传递数据,所以我不需要担心数据争用.
  • 返回的QFutures 支持.QtConcurrent::runQFuture::cancel

c++ qt multithreading cancellation

2
推荐指数
1
解决办法
194
查看次数

如何设置CSS动画的当前帧(或类似帧)?

我有一个CSS关键帧动画,它本身非常普通。但是,我希望能够强制动画处于特定帧。 类似的东西anim.setProgress(0.13),它将动画设置为13%。 我怎样才能做到这一点?

请注意,我不只是想在任意点开始动画。我希望能够中断它并说“回到32%”之类的值,而不管动画沿多远。

css animation keyframe css-animations

2
推荐指数
1
解决办法
965
查看次数

如何引用父作用域中定义的 PowerShell 函数?

我正在编写一个运行几个后台作业的 PowerShell 脚本。其中一些后台作业将使用相同的一组常量或实用函数,如下所示:

$FirstConstant = "Not changing"
$SecondConstant = "Also not changing"
function Do-TheThing($thing)
{
    # Stuff
}

$FirstJob = Start-Job -ScriptBlock {
    Do-TheThing $using:FirstConstant
}

$SecondJob = Start-Job -ScriptBlock {
    Do-TheThing $using:FirstConstant
    Do-TheThing $using:SecondConstant
}
Run Code Online (Sandbox Code Playgroud)

如果我想在子作用域中共享变量(或者在本例中为常量),我会在变量引用前面加上$using:. 但我不能用函数来做到这一点;按原样运行此代码会返回错误:

The term 'Do-TheThing' is not recognized as the name of a cmdlet, function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)

我的问题是:我的后台作业如何使用我在更高范围内定义的小型实用函数?

powershell scope function

1
推荐指数
1
解决办法
913
查看次数