小编Sub*_*jee的帖子

在keras中制作自定义丢失功能

嗨,我一直在尝试在keras中为dice_error_coefficient创建自定义丢失函数.它有它的实现tensorboard,我尝试使用相同的功能与tensorflow keras但它一直返回NoneType当我用model.train_on_batchmodel.fit其中在模型中的指标使用时,它提供正确的价值观.可以请有人帮我解决我该怎么办?我曾经尝试过像ahundt这样的Keras-FCN这样的库,在那里他使用了自定义丢失函数,但似乎都没有.代码中的目标和输出分别是y_true和y_pred,如keras中的losses.py文件中所使用的那样.

def dice_hard_coe(target, output, threshold=0.5, axis=[1,2], smooth=1e-5):
    """References
    -----------
    - `Wiki-Dice <https://en.wikipedia.org/wiki/Sørensen–Dice_coefficient>`_
    """

    output = tf.cast(output > threshold, dtype=tf.float32)
    target = tf.cast(target > threshold, dtype=tf.float32)
    inse = tf.reduce_sum(tf.multiply(output, target), axis=axis)
    l = tf.reduce_sum(output, axis=axis)
    r = tf.reduce_sum(target, axis=axis)
    hard_dice = (2. * inse + smooth) / (l + r + smooth)
    hard_dice = tf.reduce_mean(hard_dice)
    return hard_dice
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras tensorflow

30
推荐指数
2
解决办法
4万
查看次数

keras中的二进制交叉熵和带对数的二进制交叉熵有什么区别?

在keras后端,我们还有一个标志with_logitsK.binary_crossentropy。正常的二进制互熵和带对数的二进制互熵有什么区别?假设我正在使用seq2seq模型,并且我的输出序列是type 100111100011101

如果我在输入中给出了类似的顺序以及时间步长,那么递归的LSTM或RNN应该从该数据中学到什么呢?

python machine-learning lstm keras rnn

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

Keras 无法计算 Keras 自定义层中的参数数量

我正在构建具有一些 Tensorflow 支持的 Keras 自定义层。在此之前,如果我conv2d在调用函数中使用 Tensorflow 编写 Keras 层,我想测试 Convolution2D 层是否正常工作。

class Convolutional2D(Layer):
    def __init__(self, filters=None, kernel_size=None, padding='same', activation='linear', strides=(1,1), name ='Conv2D', **kwargs):
        self.filters = filters
        self.kernel_size = kernel_size
        self.padding = padding
        self.activation = activation
        self.strides = strides
        self.name = name
        self.input_spec = [InputSpec(ndim=4)]
        super(Convolutional2D, self).__init__(**kwargs)

    def call(self, input):
        out = tf.layers.conv2d(inputs=input, filters=self.filters, kernel_size=self.kernel_size, strides=self.strides, padding=self.padding, 
        data_format='channels_last')
        return(out)

    def compute_output_shape(self, input_shape):
        batch_size = input_shape[0]
        width = input_shape[1]/self.strides[0]
        height = input_shape[2]/self.strides[1]
        channels = self.filters
        return(batch_size, width, height, channels)

    def …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow

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

标签 统计

keras ×3

machine-learning ×2

python ×2

tensorflow ×2

lstm ×1

rnn ×1