小编Dre*_*ana的帖子

类型签名a-> b-> a和c-> a-> c之间有区别吗?

这个问题是有关Haskell函数的理论问题,该函数可以接受任何类型的参数。具有类型签名的函数方式之间是否有区别

a -> b -> a 
Run Code Online (Sandbox Code Playgroud)

c -> a -> c 
Run Code Online (Sandbox Code Playgroud)

被实例化?任何帮助表示赞赏。

haskell functional-programming

16
推荐指数
2
解决办法
1534
查看次数

尽管设置了种子,但运行之间的结果无法重现

使用完全相同的种子和静态数据输入运行同一个 Python 程序两次会产生不同的结果,这怎么可能呢?在 Jupyter Notebook 中调用以下函数会产生相同的结果,但是,当我重新启动内核时,结果会有所不同。当我从命令行将代码作为 Python 脚本运行时,这同样适用。人们还采取其他措施来确保他们的代码可重现吗?我找到的所有资源都谈到了播种。随机性是由 ShapRFECV 引入的。

此代码仅在 CPU 上运行。

MWE(在此代码中,我生成一个数据集并使用 ShapRFECV 消除特征,如果这很重要):

import os, random
import numpy as np
import pandas as pd
from probatus.feature_elimination import ShapRFECV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

global_seed = 1234
os.environ['PYTHONHASHSEED'] = str(global_seed)
np.random.seed(global_seed)
random.seed(global_seed)

feature_names = ['f1', 'f2', 'f3_static', 'f4', 'f5', 'f6', 'f7',
 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 
'f18', 'f19', 'f20']

# Code from tutorial on probatus documentation
X, y = make_classification(n_samples=100, …
Run Code Online (Sandbox Code Playgroud)

python random scikit-learn random-seed

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

为什么矢量化使用浮点数比使用双数更有效?

我注意到在 C 程序中向量化循环时,与双操作数相比,使用 float 类型的操作数时实现的加速要大得多。

例子:

for (int i = 0; i < N; i++) {
    a[i] += b[i] * c[i];
}    
Run Code Online (Sandbox Code Playgroud)

当 a、b 和 c 数组的大小分别为 20,000 并且我重复此循环 1,000,000 时:

  • 如果没有矢量化,浮点数和双精度数大约需要 24 秒

  • 使用自动矢量化(使用 -O1 -ftree-vectorize 编译),浮点数需要 7 秒,双精度数需要 21 秒

  • 使用 OpenMP (#pramga omp simd),它类似于上面的要点。

    这可能是什么原因?

编辑:更多信息:

  1. 处理器:Intel Core i7-2677M CPU @ 1.80GHz
  2. 周围的代码只不过是数组分配(使用 calloc)和一个循环,其中数组 b 和 c 填充了常量值。

c c++ gcc openmp

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

BCrypt:有没有办法在数据库中插入已经加密的密码?

我正在使用 Spring Framework(-> Java)构建一个 Web 应用程序。出于测试原因,我创建了一个用户(通过 SQL 语句)。目前我正在研究密码加密,为此我使用 BCyrptPasswordEncoder。我想知道是否可以使用编码密码创建第一个用户。

换句话说:我可以通过 SQL 语句使用加密密码作为输入来创建新用户吗?如果是这样,我该如何输入编码密码?

我尝试过 {Bcyrpt}[hash],我在一些网站上读到过,但这似乎不起作用......

插入用户(用户名,密码)值('admin','passwd')

java encryption spring bcrypt

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

将线性递归函数重写为尾递归函数

我想知道,当重写"常规"递归函数作为尾递归函数时,我该如何处理?有某种策略吗?

例如:我有这个简单的函数,我想把它变成一个尾递归的函数:

int rec(int n) {
    if (n % 2 || n > 10) {
    return n;
    }
    return  rec(n+1) + rec(n+2);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

algorithm recursion tail-recursion pseudocode

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