相关疑难解决方法(0)

Keras、Tensorflow:评估时如何在自定义层中设置断点(调试)?

我只想在自定义图层内进行一些数字验证。

假设我们有一个非常简单的自定义层:

class test_layer(keras.layers.Layer):
    def __init__(self, **kwargs):
        super(test_layer, self).__init__(**kwargs)

    def build(self, input_shape):
        self.w = K.variable(1.)
        self._trainable_weights.append(self.w)
        super(test_layer, self).build(input_shape)

    def call(self, x, **kwargs):
        m = x * x            # Set break point here
        n = self.w * K.sqrt(x)
        return m + n
Run Code Online (Sandbox Code Playgroud)

和主程序:

import tensorflow as tf
import keras
import keras.backend as K

input = keras.layers.Input((100,1))
y = test_layer()(input)

model = keras.Model(input,y)
model.predict(np.ones((100,1)))
Run Code Online (Sandbox Code Playgroud)

如果我在该行设置断点调试m = x * x,程序在执行时会在此处暂停y = test_layer()(input),这是因为图形已构建,call()方法被调用。

但是当我model.predict()用来赋予它真正的价值,并且想看看它是否正常工作时,它不会在该行停顿m = …

python pycharm keras tensorflow

11
推荐指数
2
解决办法
2411
查看次数

训练期间在Keras中打印图层输出

我是Keras的新手。在培训阶段,如何打印中间层或最终层的输出?

我正在尝试调试我的神经网络,并想知道训练过程中各层的行为。为此,我尝试在训练过程中为每一步精确输入和输出一层。

FAQ(https://keras.io/getting-started/faq/#how-can-i-obtain-the-output-of-an-intermediate-layer)具有提取中间层输出以构建另一层的方法模型,但这不是我想要的。我不需要将中间层的输出用作其他层的输入,我只需要打印出它们的值,并可能对其进行图形化/图表化/可视化。

我正在使用Keras 2.1.4

python keras tensorflow

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

标签 统计

keras ×2

python ×2

tensorflow ×2

pycharm ×1