小编Spa*_*key的帖子

np.random.rand vs np.random.random

我发现Python(及其生态系统)充满了奇怪的约定和不一致,这是另一个例子:

np.random.rand

创建给定形状的数组,并使用来自[0,1]的均匀分布的随机样本填充它.

np.random.random

在半开区间[0.0,1.0]中返回随机浮点数.结果来自所述间隔的"连续均匀"分布.

??? 究竟有什么区别?

python numpy

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

Scala使用Java库,利用Java 8中的lambda表达式支持

根据:http: //docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#lambda-expressions-in-gui-applications

先前:

btn.setOnAction(new EventHandler<ActionEvent>() {

    @Override
    public void handle(ActionEvent event) {
        System.out.println("Hello World!");
    }
});
Run Code Online (Sandbox Code Playgroud)

现在,我们可以:

btn.setOnAction(
  event -> System.out.println("Hello World!")
);
Run Code Online (Sandbox Code Playgroud)

现在,我在使用Java库时尝试在Scala中执行此操作.

我正在使用JavaFX(Java 1.8 SE中默认包含它).尝试:

chart.setOnMouseClicked( (e: MouseEvent) => println("Noice") )
Run Code Online (Sandbox Code Playgroud)

但是,我得到:

Error:(204, 46) type mismatch;
 found   : javafx.scene.input.MouseEvent => Unit
 required: javafx.event.EventHandler[_ >: javafx.scene.input.MouseEvent]
    chart.setOnMouseClicked( (e: MouseEvent) => println("Noice") )
                                             ^
Run Code Online (Sandbox Code Playgroud)

旧样式很好用:

chart.setOnMouseClicked( new EventHandler[MouseEvent] {
  override def handle(event: MouseEvent): Unit = println("NOT NOICE")
} )
Run Code Online (Sandbox Code Playgroud)

我在IntelliJ中将项目语言级别设置为Java 8,我使用的是Scala 2.11.1,以及来自Oracle 1.8.0_05的Java

我在这里错过了什么?或者是否根本无法将Scala中的lambda表达式传递给Java,就像在上述示例中所做的那样?

lambda scala javafx java-8 javafx-8

19
推荐指数
2
解决办法
6088
查看次数

SBT目录结构.什么是"项目"?

一个play项目有一个像这样的"project"文件夹:

  • 项目
    • 目标
    • 项目
      • 目标

我一直认为这只是我不应该想太多的生活奥秘之一,但今天我的好奇心得到了我的好处.

谷歌搜索给了我这个提到顶级"项目"文件夹用于sbt配置.我想知道为什么他们没有把那个".sbt"称为".git",为什么在该文件夹之外仍然有一个文件"build.sbt",但我认为让事情真正有意义没有乐趣.

它也没有提到为什么它里面包含另一个"project"文件夹.

为什么有嵌套的"项目"文件夹?

scala sbt playframework-2.0

14
推荐指数
2
解决办法
3772
查看次数

将对象复制到设备?

我可以将C++对象复制到设备吗?

说我有:

class CudaClass
{
public:
int* data;
CudaClass(int x) {
    data = new int[1]; data[0] = x;
}
};

__global__ void useClass(CudaClass cudaClass)
{
    printf("%d" cudaClass.data[0]);
};


int main()
{
    CudaClass c(1);
}
Run Code Online (Sandbox Code Playgroud)

现在如何将"c"复制到设备内存并启动内核"useClass"?

cuda

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

如何在GPU上进行训练时处理非确定性?

在调整超参数以使我的模型更好地执行时,我注意到每次运行代码时我得到的分数(以及因此创建的模型)都不同,尽管为随机操作修复了所有种子.如果我在CPU上运行,则不会发生此问题.

我用Google搜索并发现使用GPU进行训练时这是一个常见问题.这是一个非常好/详细的示例,其中包含用于验证该问题是否存在的短代码片段.

他们将非确定性指向"tf.reduce_sum"函数.但是,对我来说情况并非如此.可能是因为我使用的是不同的硬件(1080 TI)或不同版本的CUDA库或Tensorflow.看起来CUDA库的许多不同部分都是非确定性的,并且似乎不容易弄清楚哪个部分以及如何摆脱它.此外,这必须是设计的,因此非确定性的交换可能会有足够的效率提升.

所以,我的问题是:

由于GPU在培训NN方面很受欢迎,因此该领域的人们必须有办法处理非确定性问题,因为我无法看到你如何能够可靠地调整超参数.使用GPU时处理非确定性的标准方法是什么?

python machine-learning tensorflow

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

定义lambda函数并立即执行它

我正在定义一个lambda并通过追加"()"立即调用它.

尝试:

int i = (() => 0) ();
Run Code Online (Sandbox Code Playgroud)

错误:

错误CS0119:表达式表示anonymous method', where a方法组'是预期的

这是为什么?

c# lambda

8
推荐指数
2
解决办法
2126
查看次数

NodeJS/Electron关于客户端/服务器代码的混淆

这是一个初学者的问题.我以前没有使用过NodeJS,所以对我来说有点混乱.我没有看到服务器模块和客户端模块之间的明确分离.看起来我可以使用"npm"(Node的包管理器)来安装客户端模块和服务器模块.

我的问题与此页面特别相关:http: //electron.atom.io/docs/v0.36.8/api/synopsis/

它说我可以在客户端使用Node模块:

除了使用节点模块的额外功能外,渲染器过程与普通网页没有什么不同:

    <!DOCTYPE html>
    <html>
    <body>
    <script>
      const remote = require('electron').remote;
      console.log(remote.app.getVersion());
    </script>
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

这有什么用呢?节点在服务器端运行,浏览器(他们称之为"渲染器"进程)如何能够使用Node的包?

node.js electron

8
推荐指数
2
解决办法
8025
查看次数

英特尔编译器无法矢量化这个简单的循环?

所以我有以下代码对我来说似乎很简单:

#define MODS_COUNT 5

int start1 = <calc at runtime>;
int start2 = <calc at runtime>;

for (int j=0; j<MODS_COUNT; j++) // loop 5 times doing simple addition.
    logModifiers[start1 +  j] += logModsThis[start2 + j];
Run Code Online (Sandbox Code Playgroud)

这个循环是外循环的一部分(不确定这是否有所不同)

编译器说: message : loop was not vectorized: vectorization possible but seems inefficient.

为什么这个循环不能被矢量化?对我来说似乎很简单.我怎样才能强制进行矢量化并检查性能?

我有英特尔C++编译器2013更新3.

如果有兴趣的话,完整代码在这里:http://pastebin.com/Z6H5ZejW

编辑:据我所知,编译器认为它效率低下.我在问:

为什么效率低下?

我怎么能强迫它以便我可以自己做基准测试?

编辑2:如果我将其更改为4而不是5,那么它将被矢量化.是什么让5效率低下?我认为它可以在2个指令中完成,第一个执行4个,第二个执行"正常"执行1,而不是5个指令.

c++ vectorization

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

OpenCL静态C++文档

我已经用OpenCL进行了几天的实验,我正在使用AMD的SDK,现在我可以并行运行一个简单的内核,并将输入/输出传递给它.
我不得不说,我对它缺乏适当的文档感到非常失望,CUDA似乎比OpenCL更成熟,但我不能使用CUDA,因为我没有nVidia,因为我想要便携式代码.

我已经读过AMD的OpenCL SDK现在支持"静态C++"扩展,它允许你有一些用于编写内核的C++特性,比如继承和将类实例从主机传递到设备.但是我找不到任何关于那个或任何例子的文档.

简而言之,我的问题是:

在哪里可以找到有关使用OpenCL的静态C++扩展的文档?
一个额外的问题是,我在哪里可以找到C++包装器(1.2而不是1.1)
的PROPER文档,这是一个超级额外的(:P)问题,是否存在OpenCL 1.2的完整/成熟C#包装器?到目前为止,我发现OpenCL.NET工作正常,但它没有文档,所以我必须查看OpenCL C Reference并尝试在C#中找到等效的

感谢阅读本文,我理解它有点模糊,我想要的是一个易于使用的OpenCL SDK和适当的文档(当然,除了C,我讨厌使用普通的C).

c# c++ gpgpu opencl

5
推荐指数
0
解决办法
603
查看次数

在vim中获取ocamlmerlin自动完成功能

我正在尝试为OCaml进行自动完成.我喜欢使用Vim,我找到了这个插件:

https://github.com/the-lambda-church/merlin

我使用OPAM安装它并添加了所需的行以将其加载到我的.vimrc

我确保OPAM bin文件夹(包含ocamlmerlin)在我的.profile文件中,并检查我是否可以从终端访问它,对于vim,我使用"Ctrl-r = $ PATH"打印了PATH变量,它显示了它包含OPAM bin文件夹.

它仍然不起作用,我不知道还有什么可以使其工作.我得到了语法高亮,但无论如何都没有merlin.我希望自动完成工作.

如果我按Ctrl-N显示完成建议我得到"正常"的vim完成,这基本上只是文档中提到的单词列表.

检查启动日志文件,我可以看到Vim确实加载了merlin:

chdir(/home/incraved/.opam/system/share/ocamlmerlin/vim/plugin)
fchdir() to previous dir
sourcing "/home/incraved/.opam/system/share/ocamlmerlin/vim/plugin/merlin.vim"
finished sourcing /home/incraved/.opam/system/share/ocamlmerlin/vim/plugin/merlin.vim
Searching for "/home/incraved/.opam/system/share/ocamlmerlin/vimbufsync/plugin/**/*.vim"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

vim ocaml autocomplete merlin

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