我发现Python(及其生态系统)充满了奇怪的约定和不一致,这是另一个例子:
np.random.rand
创建给定形状的数组,并使用来自[0,1]的均匀分布的随机样本填充它.
np.random.random
在半开区间[0.0,1.0]中返回随机浮点数.结果来自所述间隔的"连续均匀"分布.
??? 究竟有什么区别?
根据: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,就像在上述示例中所做的那样?
一个play项目有一个像这样的"project"文件夹:
我一直认为这只是我不应该想太多的生活奥秘之一,但今天我的好奇心得到了我的好处.
谷歌搜索给了我这个提到顶级"项目"文件夹用于sbt配置.我想知道为什么他们没有把那个".sbt"称为".git",为什么在该文件夹之外仍然有一个文件"build.sbt",但我认为让事情真正有意义没有乐趣.
它也没有提到为什么它里面包含另一个"project"文件夹.
为什么有嵌套的"项目"文件夹?
我可以将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"?
在调整超参数以使我的模型更好地执行时,我注意到每次运行代码时我得到的分数(以及因此创建的模型)都不同,尽管为随机操作修复了所有种子.如果我在CPU上运行,则不会发生此问题.
我用Google搜索并发现使用GPU进行训练时这是一个常见问题.这是一个非常好/详细的示例,其中包含用于验证该问题是否存在的短代码片段.
他们将非确定性指向"tf.reduce_sum"函数.但是,对我来说情况并非如此.可能是因为我使用的是不同的硬件(1080 TI)或不同版本的CUDA库或Tensorflow.看起来CUDA库的许多不同部分都是非确定性的,并且似乎不容易弄清楚哪个部分以及如何摆脱它.此外,这必须是设计的,因此非确定性的交换可能会有足够的效率提升.
所以,我的问题是:
由于GPU在培训NN方面很受欢迎,因此该领域的人们必须有办法处理非确定性问题,因为我无法看到你如何能够可靠地调整超参数.使用GPU时处理非确定性的标准方法是什么?
我正在定义一个lambda并通过追加"()"立即调用它.
尝试:
int i = (() => 0) ();
Run Code Online (Sandbox Code Playgroud)
错误:
错误CS0119:表达式表示
anonymous method', where a方法组'是预期的
这是为什么?
这是一个初学者的问题.我以前没有使用过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的包?
所以我有以下代码对我来说似乎很简单:
#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个指令.
我已经用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).
我正在尝试为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)
有任何想法吗?