小编ela*_*sca的帖子

阅读图像灰度opencv 3.0.0-dev

我试图直接读取图像为黑色和白色.

我最近将我的OpenCv版本更新为3.0.0-dev,我之前使用的代码不再起作用.

   img = cv2.imread(f, cv2.CV_LOAD_IMAGE_GRAYSCALE)
Run Code Online (Sandbox Code Playgroud)

适用于2.4,但不适用于新版本,因为没有字段CV_LOAD_IMAGE_GRAYSCALE.

有什么建议?

注意:我知道这cv2.imread(f,0)会有效,但我不喜欢在我的代码中使用未命名的常量.谢谢!

python opencv grayscale

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

在python中等效的Haskell scanl

我想知道python中是否有内置函数用于等效的Haskell scanl,reduce相当于foldl.

这样做的东西:

Prelude> scanl (+) 0 [1 ..10]
[0,1,3,6,10,15,21,28,36,45,55]
Run Code Online (Sandbox Code Playgroud)

问题不在于如何实现它,我已经有2个实现,如下所示(但是,如果你有一个更优雅的实现,请随时在这里显示).

首次实施:

 # Inefficient, uses reduce multiple times
 def scanl(f, base, l):
   ls = [l[0:i] for i in range(1, len(l) + 1)]
   return [base] + [reduce(f, x, base) for x in ls]

  print scanl(operator.add, 0, range(1, 11))
Run Code Online (Sandbox Code Playgroud)

得到:

[0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55]
Run Code Online (Sandbox Code Playgroud)

第二次实施:

 # Efficient, using an accumulator
 def scanl2(f, base, l):
   res = [base]
   acc = base …
Run Code Online (Sandbox Code Playgroud)

python haskell functional-programming

17
推荐指数
2
解决办法
2398
查看次数

使用Control.Monad.MonadRandom对正态分布进行采样

我想采用给定均值和标准差的正态分布进行采样.我知道如何在各种上下文中执行此操作,如Data.Random.Rvar或Data.Random.MonadRandom.但是,我的函数的上下文是Control.Monad.MonadRandom,我想保持这种方式,因为我的整个项目使用Control.Monad.MonadRandom.

有没有办法这样做,你能帮我这么做吗?

这是代码的样子.Pattern只是Data.Vector的别名Double和Weights是Data.Vector(Data.Vector Double)的别名(即矩阵)

train :: MonadRandom m => [Pattern] -> Int -> m Weights
train pats nr_hidden = do
  ws_start <- ws_start''
  foldM updateWS ws_start pats
    where ws_start'  = take p (repeat $ take nr_hidden $ repeat $ (normal 0.0 0.01))
         ws_start'' = vector2D <$> (sequence $ map sequence ws_start')
         p = length pats
Run Code Online (Sandbox Code Playgroud)

谢谢.

haskell distribution

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

Theano与现有的python代码集成

我有一个简单的问题,我预计已经在网上找到了一个简单的答案,但我没有.

由于矩阵操作,我有一个与numpy一起工作的python项目.我想加快代码速度,所以我做了一些分析,找到适合工作的正确工具.结果是开销不是python,而是矩阵运算.因此我认为我应该使用Theano(特别是考虑到我正在实现机器学习算法,这就是为此而做的).

我的项目的大部分开销都在一个函数中,我想知道在某种程度上可以用theano重写该函数然后从中获取numpy数组并像往常一样继续计算.

这再次只是为了测试我将在不承诺改变大量代码的情况下获得多少速度.

谢谢!

编辑:以下是这个功能

def backprop(weights, layerValues, finalLayerErrors, activationFunctions):
  nrLayers = len(weights) + 1
  deDw = []
  deDbias = []
  upperLayerErrors = finalLayerErrors

  for layer in xrange(nrLayers - 1, 0, -1):
    deDz = activationFunctions[layer - 1].derivativeForLinearSum(
                        upperLayerErrors, layerValues[layer])
    upperLayerErrors = np.dot(deDz, weights[layer - 1].T)

    dw = np.einsum('ij,ik->jk', layerValues[layer - 1], deDz)

    dbias = deDz.sum(axis=0)

    # Iterating in decreasing order of layers, so we are required to
    # append the weight derivatives at the front as we go along …
Run Code Online (Sandbox Code Playgroud)

python numpy theano

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