小编Sco*_*ott的帖子

如何获得keras的渐变?

我正在尝试调试keras我已经构建的模型.似乎我的渐变是爆炸性的,或者有0或者其他类似的除法.当它们通过网络反向传播时能够检查各种梯度将是方便的.像下面这样的东西是理想的:

model.evaluate(np.array([[1,2]]), np.array([[1]])) #gives the loss
model.evaluate_gradient(np.array([[1,2]]), np.array([[1]]), layer=2) #gives the doutput/dloss at layer 2 for the given input
model.evaluate_weight_gradient(np.array([[1,2]]), np.array([[1]]), layer=2) #gives the dweight/dloss at layer 2 for the given input
Run Code Online (Sandbox Code Playgroud)

python keras

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

sklearn中如何获取模型损失

每当sklearn模型适合某些数据时,它就会最小化某些损失函数。如何使用该损失函数获得模型损失?

例如

model = sklearn.linear_model.LogisticRegression().fit(X_train,y_train)
model.get_loss(X_train, y_train) #gives the loss for these values
model.get_loss(X_test, y_test) #gives the loss for other values
Run Code Online (Sandbox Code Playgroud)

请注意,该.score方法不执行此操作。

python scikit-learn

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

有没有办法休眠Docker容器

我喜欢使用Jupyter Notebook。如果我在virtualbox的VM中运行它,则可以保存VM的状态,然后从第二天停下来的地方继续。如果要在docker容器中运行它,可以做类似的事情吗?即将容器的“状态”转储到磁盘,然后将其重新启动并重新加载“状态”?

docker

7
推荐指数
2
解决办法
2488
查看次数

制作一个cpp排序的元组

这是std::make_tuple标准库中的代码.

template<typename... _Elements>
    inline tuple<typename __decay_and_strip<_Elements>::__type...>
    make_tuple(_Elements&&... __args)
    {
    typedef tuple<typename __decay_and_strip<_Elements>::__type...>
    __result_type;
    return __result_type(std::forward<_Elements>(__args)...);
    }
Run Code Online (Sandbox Code Playgroud)

我想做的是__args在创建元组之前进行排序,大概是std::sort(..., Compare comp)在用户传递适当的比较器的地方,可以用来对__args中的任何类型的东西进行排序.

但是,我对cpp相对较新,我不明白这个函数中的一半代码,并且std::sort需要一个参数结束__args,而且我不确定如何推导出它.

也请说明typename __decay_and_strip<_Elements>::__type..._Elements&&...位...

编辑因为对于任意类型组合,返回类型在编译时将是未知的,通用情况似乎是不可能的.假设所有同类型的,那么,我们替换..._ElementsT,我仍然不确定如何获得" .end()"的__args用于std::sort

c++

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

加权直方图

我正在寻求从中迁移matplotlibplotly,但似乎plotly没有很好的集成pandas.例如,我正在尝试制作一个指定箱数的加权直方图:

sns.distplot(df.X, bins=25, hist_kws={'weights':df.W.values},norm_hist=False,kde=False)  
Run Code Online (Sandbox Code Playgroud)

但我没有找到一个简单的方法来做到这一点plotly.如何以直接的方式从pandas.DataFrame使用plotly中生成数据的直方图?

python plot histogram

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

将python惰性映射应用到就地函数?

有时,我通过反复应用map来构建事物,然后让python一次执行所有操作。

例如,我可以建立如下范围列表:

foo = [256]*3
foo = map(range, foo)
foo = map(list, foo)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我所拥有的只是一个包含3个项目的列表,以及几个地图对象。懒惰了。如果在这一点上我想求值foo,我可以调用,例如,list(foo)所有maps都将执行,并且我将得到一个嵌套的范围列表。

但是,假设我想在一个foo就位的函数上映射一个函数。

foo = [256]*3
foo = map(range, foo)
foo = map(list, foo)
in_place_op = map(lambda x: x.sort(reverse=True), foo)
Run Code Online (Sandbox Code Playgroud)

如果我尝试评估in_place_op,它将无法正确应用于的要素foo。即使我继续进行评估foo,也会发生这种情况,因为它in_place_op已应用于指向以下位置的地图foo

foo = [256]*3
foo = map(range, foo)
foo = map(list, foo)
in_place_op = map(lambda x: x.sort(reverse=True), foo)
foo = list(foo)
list(in_place_op)
print(foo)
#[[1,2,3...],[1,2,3...],[1,2,3...]]
#expected [[255,254,...],...]
Run Code Online (Sandbox Code Playgroud)

为了得到这个工作,我不得不list(foo) 之前 map …

python lazy-evaluation python-3.x map-function

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

Python argparse 在类型之前检查选择

我正在尝试使用户能够传入函数名称。出于某种原因,argparse 似乎在检查选项之前执行类型检查/转换。这是一个错误吗?最好的办法是什么?

import argparse

def foo():
  return 'foo'

def bar():
  return 'bar'

parser = argparse.ArgumentParser()
functions = {f.__name__:f for f in [foo, bar]}
parser.add_argument("function", type=lambda f: functions.get(f), help="which function", choices=functions)
args = parser.parse_args()
print(args.function())
Run Code Online (Sandbox Code Playgroud)

这抛出:

$ python blah.py foo
usage: blah.py [-h] {foo,bar}
blah.py: error: argument function: invalid choice: <function foo at 0x7f65746dd848> (choose from 'foo', 'bar')
Run Code Online (Sandbox Code Playgroud)

python argparse

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

使用itertools创建numpy数组

我想使用itertools的各种函数来创建numpy数组.我可以很容易地提前计算产品中元素的数量,组合,排列等,因此分配空间不应该是一个问题.

例如

coords = [[1,2,3],[4,5,6]]
iterable = itertools.product(*coords)
shape = (len(coords[0]), len(coords[1]))
arr = np.iterable_to_array(
    iterable, 
    shape=shape, 
    dtype=np.float64, 
    count=shape[0]*shape[1]
) #not a real thing
answer = np.array([
    [1,4],[1,5],[1,6],
    [2,4],[2,5],[2,6],
    [3,4],[3,5],[3,6]])
assert np.equal(arr, answer)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy python-itertools

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

Python“请参阅help(type(self))获得准确的签名。”

help()进入类时,我已经在许多文档字符串中看到以下语句:“参见help(type(self))以获取准确的签名”。

值得注意的是,它是在help()scipy.stats.binom.__init__stockfish.Stockfish.__init__在最起码。因此,我认为这是某种股票信息。

无论如何,我不知道这到底意味着什么。这是有用的信息吗?请注意,可以说,在班级“之外”,我永远也无法访问self。此外,如果我无法访问__init__方法的签名,因此甚至无法执行,则无法实例化一个类help(type(my_object_instantiated))。这是一个陷阱。22.要使用它__init__,我需要签名__init__,但是为了读取它__init__,我需要使用实例化一个对象__init__。这一点在理论上是严格的,但是,即使我确实实例化了一个scipy.stats.binom,它实际上也会返回一个完全不同的类的对象,其对象中的rv_frozen消息完全相同__init__docstring,但其签名完全不同,用处不大。换句话说,help(type(self))实际上并没有给出准确的签名。这没用。

有谁知道此消息的来源或应该如何处理?仅仅是来自文档生成器的库存垃圾,还是我在误用户?

python documentation docstring

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

如何沿批量维度广播 numpy 索引?

例如,np.array([[1,2],[3,4]])[np.triu_indices(2)]具有 shape (3,),是上三角条目的扁平列表。但是,如果我有一批 2x2 矩阵:

foo = np.repeat(np.array([[[1,2],[3,4]]]), 30, axis=0)
Run Code Online (Sandbox Code Playgroud)

我想获得每个矩阵的上三角索引,最简单的尝试是:

foo[:,np.triu_indices(2)]
Run Code Online (Sandbox Code Playgroud)

然而,这个对象实际上是有形状的(与我们批量提取上三角条目时所期望的相反)(30,2,3,2)(30,3)

我们如何沿着批量维度广播元组索引?

python numpy multidimensional-array matrix-indexing array-broadcasting

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