小编Eng*_*ero的帖子

在Python中传递参数化函数句柄

我有一个通用函数,它定义了我计划使用的ODE形式scipy.integrate.odeint,例如:

def my_ode(K, tau, y, u):
  return K*u/tau - y/tau  # dydt
Run Code Online (Sandbox Code Playgroud)

我的代码中有几个对象,它们都具有定义的形式的动态my_ode,但具有唯一的参数Ktau.我希望能够my_ode在我初始化对象时使用已设置的参数传递一个独特的句柄,这样当我更新我的对象时,我所要做的就是soln = odeint(my_ode, t, y, u)模拟时间t.

例如,如果我定义一个类:

class MyThing:
  def __init__(self, ode, y0):
    # I would rather not maintain K and tau in the objects, I just want the ODE with unique parameters here.
    self.ode = ode
    self.y = y0
    self.time = 0.0

  def update(self, t, u):
    # I want this to look something …
Run Code Online (Sandbox Code Playgroud)

python lambda function partial-application

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

为什么在张量流的cifar10例子中卷积层没有重量衰减?

在张量流上的cifar10示例中,卷积层似乎没有重量衰减.实际上除了两个完全连接的层之外,任何层都没有重量衰减.这是一种常见做法吗?我认为重量衰减适用于所有重量(偏差除外).

作为参考,这里是相关代码(wd是重量衰减因子):

  # conv1
  with tf.variable_scope('conv1') as scope:
    kernel = _variable_with_weight_decay('weights', shape=[5, 5, 3, 64],
                                         stddev=1e-4, wd=0.0)
    conv = tf.nn.conv2d(images, kernel, [1, 1, 1, 1], padding='SAME')
    biases = _variable_on_cpu('biases', [64], tf.constant_initializer(0.0))
    bias = tf.nn.bias_add(conv, biases)
    conv1 = tf.nn.relu(bias, name=scope.name)
    _activation_summary(conv1)

  # pool1
  pool1 = tf.nn.max_pool(conv1, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1],
                         padding='SAME', name='pool1')
  # norm1
  norm1 = tf.nn.lrn(pool1, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75,
                    name='norm1')

  # conv2
  with tf.variable_scope('conv2') as scope:
    kernel = _variable_with_weight_decay('weights', …
Run Code Online (Sandbox Code Playgroud)

conv-neural-network tensorflow

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

生成非连续组合

我正在尝试创建一个生成器(迭代器支持执行下一个,也许在python中使用yield),它给出了来自{1,2,... n}(n和r是参数)的r个元素的所有组合,以便在选中的r元素,没有两个是连续的.

例如,对于r = 2且n = 4

生成的组合是{1,3}, {1,4}, {2, 4}.

我可以生成所有组合(作为迭代器)并过滤那些不符合标准的组合,但我们将做不必要的工作.

是否存在一些生成算法,即nextO(1)(如果不可能,则为O(r)或O(n)).

返回集合的顺序不相关(并且希望允许O(1)算法).

注意:我已将其标记为python,但语言无关的算法也会有所帮助.

更新:

我找到了一种将它映射到生成纯组合的方法!网络搜索显示组合可能有O(1)(虽然看起来很复杂).

这是映射.

假设我们有一个组合x_1, x_2, ... , x_rx_1 + 1 < x_2, x_2 + 1 < x_3, ...

我们映射y_1, y_2, ..., y_r如下

y_1 = x_1

y_2 = x_2 - 1

y_3 = x_3 - 2

...

y_r = x_r - (r-1)
Run Code Online (Sandbox Code Playgroud)

这样我们就y_1 < y_2 < y_3 ... 没有非连续约束!

这基本上等于从n-r + 1中选择r个元素.因此,我需要做的就是为(n-r + 1选择r)运行代.

出于我们的目的,在生成事物之后使用映射就足够了.

选择svkcr答案的原因 …

python algorithm combinations

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

人工神经网络中反向传播的全矩阵方法

我最近正在学习人工神经网络(ANN),并且已经有一个基于小批量培训的代码在Python中运行和运行.我按照迈克尔尼尔森的神经网络和深度学习一书,逐步解释了初学者的每一个算法.还有一个完全可用的手写数字识别代码,对我来说也很好.

但是,我试图通过将整个小批量传递到矩阵形式的反向传播来稍微调整代码.我还为此开发了一个工作代码,但代码在运行时执行速度很慢.有什么办法可以基于反向传播算法实现基于完整矩阵的网络小批量学习方法?

import numpy as np
import pandas as pd

class Network:

    def __init__(self, sizes):
        self.layers = len(sizes)
        self.sizes = sizes

        self.biases = [np.random.randn(y, 1) for y in sizes[1:]]
        self.weights = [np.random.randn(y, x) for y, x in zip(sizes[1:], sizes[:-1])]

    def feed_forward(self, a):
        for w, b in zip(self.weights, self.biases):
            a = sigmoid(np.dot(w,a) + b)
        return a

    # Calculate the cost derivative (Gradient of C w.r.t. 'a' - Nabla C(a))
    def cost_derivative(self, output_activation, y):
        return (output_activation - y)


    def update_mini_batch(self, …
Run Code Online (Sandbox Code Playgroud)

python numpy backpropagation neural-network gradient-descent

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

有没有办法在张量流中剪切中间爆炸梯度

问题:一个很长的RNN网

N1 -- N2 -- ... --- N100
Run Code Online (Sandbox Code Playgroud)

对于类似的优化器AdamOptimizer,compute_gradient()将为所有训练变量提供渐变.

但是,它可能会在某个步骤中爆炸.

类似于如何有效地应用梯度剪切张量流的方法 可以剪切大的最终梯度.

但是如何剪辑那些中级的呢?

一种方法可能是从"N100 - > N99"手动执行backprop,剪辑渐变,然后是"N99 - > N98"等等,但这太复杂了.

所以我的问题是:是否有更简单的方法来剪辑中间渐变?(当然,严格来说,它们不再是数学意义上的渐变)

adam gradient clipping deep-learning tensorflow

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

无法将 proto 文件构建到描述符池中

我正在从事 AI 项目,但我在 Python 方面仍然不是很有经验。

我正在尝试构建和测试这个项目

我遵循了所有说明,但是当我尝试启动 python 脚本时仍然出现此错误:

类型错误:无法将 proto 文件构建到描述符池中!文件“tensorflow_serving/apis/classification.proto”的原型描述符无效:tensorflow_serving/apis/classification.proto:未加载导入“tensorflow_serving/apis/model.proto”。tensorflow.serving.ClassificationRequest.model_spec:“tensorflow.serving.ModelSpec”似乎是在“model.proto”中定义的,它不是由“tensorflow_serving/apis/classification.proto”导入的。要在此处使用它,请添加必要的导入。

有没有人知道我错过了什么?

python tensorflow

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

是否可以采用Tensorflow中的张量模式?

我正在尝试在Tensorflow中构建一个DAG,我需要采用目标各个区域的模式(最常见的值).这是为了构建下采样目标.

现在,我正在为我可能遇到的每种情况预先处理下采样目标,保存它们,然后加载它们.显然,如果它被集成到我的Tensorflow图中,这将更容易,因此我可以在运行时下采样.

但我到处寻找,我找不到任何证据,证明tf.reduce_mode其功能与此相同tf.reduce_mean.有没有办法在Tensorflow图中构建此功能?

python-3.x tensorflow

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

用于Seq2Seq的Tensorflow API

谷歌今年为seq2seq制作了5个不同的软件包:

哪个包实际上值得用于实现?似乎它们都是不同的方法,但它们都不够稳定.

tensorflow

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

如何使用张量流的功能合并和切换?

mergeswitch可能不开放使用一般用户。并且我搜索了源代码:

在中有一个描述merge

返回的可用元素的值inputs

可用意味着什么?归还switch吗?这是一个演示:

from tensorflow.python.ops import control_flow_ops

x_0, x_1 = control_flow_ops.switch(tf.constant(2), False)
x_2, x_3 = control_flow_ops.switch(tf.constant(7), True)
y = control_flow_ops.merge([x_0, x_1, x_2, x_3])
with tf.Session() as sess:
    print(sess.run(y))
Run Code Online (Sandbox Code Playgroud)

machine-learning control-flow tensorflow

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

如何在Jupyter笔记本中嵌入gif?

我一直试图在Jupyter笔记本中显示gif,但遇到了一些麻烦。我不断得到一个空白的图像文件。

我试过使用此GitHub存储库中的 html 。

![wignerfunction][1](../gifs/wigner_rotation_animate.gif "wigner")
Run Code Online (Sandbox Code Playgroud)

from IPython.display import Image
Image(url='example.gif')  
Run Code Online (Sandbox Code Playgroud)

到目前为止,以上方法均无效。

谢谢

python ipython jupyter

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