标签: precompute

Pythonic方式只能在第一次调用变量时才能工作

我的Python类有一些变量需要工作来计算第一次调用它们.后续调用应该只返回预先计算的值.

我不想浪费时间做这项工作,除非用户实际需要它们.那么有一个干净的Pythonic方法来实现这个用例吗?

我最初的想法是使用property()来第一次调用函数,然后覆盖变量:

class myclass(object):
    def get_age(self):
        self.age = 21 # raise an AttributeError here
        return self.age

    age = property(get_age)
Run Code Online (Sandbox Code Playgroud)

谢谢

python variables class precompute

6
推荐指数
3
解决办法
400
查看次数

使用参照透明度来预先计算haskell中的值

假设我们有一个这样的程序:

list = [1..10000000]

main = print $ sum list
Run Code Online (Sandbox Code Playgroud)

我想要编译这样,可执行文件只打印50000005000000,而不需要花费太多时间和精力.

基本上,任何可以确定计算的表达式(也许严格性分析可以在这里帮助)都可以在编译期间预先计算(即我们使用参考透明度来表示在计算值时它并不重要).

简而言之:"必须计算"+参考 - 透明度=可以预先计算

这就像运行程序,直到我们点击依赖于输入的东西(即程序的核心,在所有输入中共同的,将被预先计算)

是否存在当前实现此目的的机制(使用Haskell或任何其他语言)?[请不要指向C++中的模板之类的东西,因为它首先没有引用透明度.]

如果没有,这个问题有多难?[伴随的技术(和理论)问题是什么?]

haskell referential-transparency precompute

6
推荐指数
2
解决办法
412
查看次数

用于拟合 scikit 邻居/半径分类的预计算矩阵

我使用预先计算的指标使用 Scikit-Learn 的最近邻/半径分类。这意味着,我将成对距离的 n_samples_train x n_samples_train 矩阵传递给分类器的拟合方法。

现在我想知道为什么必须这样做。使用 knn 学习只是意味着“存储样本”,但距离的计算应该只在稍后的泛化过程中进行(在该步骤中,我当然会计算训练样本和测试样本之间的距离矩阵,因此大小为 n_samples_train x n_samples_test 的矩阵)。

例如,在 SVM 的情况下,我将一个预先计算的矩阵(Gramian,一个相似性矩阵)传递给 smv.SVC 对象的 fit 方法。然后进行优化,找到支持向量等等。在那里,该矩阵在训练期间是绝对必要的。

但是我看不出为什么需要一个预先计算的矩阵来拟合邻居/半径分类。

有人可以给我一个相关的提示吗?

我很想跳过使用 scikit learn 计算 knn 的训练矩阵。

最好的问候和谢谢。:-)

matrix knn precompute scikit-learn

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