小编use*_*665的帖子

数组比较不匹配numpy中的元素比较

我有一个numpy数组arr.这是一个numpy.ndarray,大小是(5553110,),dtype=float32.

当我做:

(arr > np.pi )[3154950]
False
(arr[3154950] > np.pi )
True
Run Code Online (Sandbox Code Playgroud)

为什么第一次比较错了?我该如何解决?

价值:

arr[3154950]= 3.1415927
np.pi= 3.141592653589793
Run Code Online (Sandbox Code Playgroud)

问题是精确的吗?

python arrays floating-point numpy floating-accuracy

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

如何将除第一个参数之外的所有参数传递给第二个bash脚本?

我正在尝试编写一个bash脚本,除了第一个参数之外,还执行另一个bash脚本,所以我不能使用:

bash abc.sh"$ @"

因为它也会传递我不想要的第一个参数.我怎样才能删除第一个参数?

bash

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

同时使用sample_weight和class_weight

我的数据集已经有加权示例.在这个二进制分类中,与第二类相比,我也有更多的第一类.

我可以同时使用它们sample_weightclass_weightmodel.fit()功能中进一步重新加权吗?

或者我首先创建一个new_weights的新数组并将其传递给fit函数sample_weight

编辑:

为了进一步说明,我已经在我的数据集中为每个样本设置了单独的权重,并且为了进一步增加复杂性,第一类的样本权重的总和远远大于第二类的总样本权重.

例如,我目前有:

y = [0,0,0,0,1,1]

sample_weights = [0.01,0.03,0.05,0.02,0.01,0.02]

所以权重的总和类"0"0.11类"1"0.03.所以我应该:

class_weight = {0:1.,1:0.11/0.03}

我需要使用两个sample_weightAND class_weight功能.如果一个覆盖另一个,那么我将不得不创建新的sample_weights然后使用fit()train_on_batch().

所以我的问题是,我可以同时使用它们,还是覆盖另一个?

python keras tensorflow

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

带有softmax的活动正则化器?

我的生成神经网络的最后一层有一个 l1 activity_regularizer=l1 :

outputs = Dense(200, activation='softmax', activity_regularizer=l1(1e-5))(x)
Run Code Online (Sandbox Code Playgroud)

它使我的结果更好,但我不明白为什么它会改变 softmax 激活的任何内容。输出的总和 = 1 ,所有正值总是如此,所以正则化器无论如何都应该给出完全相同的损失。

activity_regularizer=l1(1e-5)在训练中做什么?

machine-learning neural-network keras

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

使用参数自定义激活

我正在尝试在Keras中创建一个激活函数,该函数可以采用如下所示的参数beta

from keras import backend as K
from keras.utils.generic_utils import get_custom_objects
from keras.layers import Activation

class Swish(Activation):

    def __init__(self, activation, beta, **kwargs):
        super(Swish, self).__init__(activation, **kwargs)
        self.__name__ = 'swish'
        self.beta = beta


def swish(x):
    return (K.sigmoid(beta*x) * x)

get_custom_objects().update({'swish': Swish(swish, beta=1.)})
Run Code Online (Sandbox Code Playgroud)

它在没有beta参数的情况下可以正常运行,但是如何在激活定义中包含参数?我也model.to_json()喜欢在激活ELU 时保存该值。


更新:我根据@today的答案编写了以下代码:

from keras.layers import Layer
from keras import backend as K

class Swish(Layer):
    def __init__(self, beta, **kwargs):
        super(Swish, self).__init__(**kwargs)
        self.beta = K.cast_to_floatx(beta)
        self.__name__ = 'swish'

    def call(self, inputs):
        return K.sigmoid(self.beta * …
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras activation-function keras-layer

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

多任务学习:训练神经网络使两个类别具有不同的损失函数?

我有一个带有两个损失函数的神经网络,一个是两个类的二元交叉熵,另一个是回归。现在我希望只对class_2评估回归损失,并为class_1返回0,因为回归特征对于class_1没有意义。

如何在 Keras 中实现这样的算法?

仅在 class_1 数据上单独训练它不起作用,因为我得到了 nan 损失。mean_square_loss有更优雅的方法来将数据集的一半和另一半的损失定义为 0 吗?

python keras tensorflow

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