小编Luc*_*Kim的帖子

Keras 拟合模型:TypeError:不可哈希类型:'numpy.ndarray'

我实现以下代码。它在以前版本的 Keras 中成功运行:

max_sequence = 56
input_dim = 26    

print("Build model..1")
first_input = Input(shape=(max_sequence,input_dim))
first_lstm = LSTM(5, return_sequences=True)(first_input)
first_bn = BatchNormalization()(first_lstm)
first_activation = Activation('tanh')(first_bn)
first_flat = Flatten()(first_activation)

print("Build model..2")
second_input = Input(shape=(max_sequence,input_dim))
second_lstm = LSTM(5, return_sequences=True)(second_input)
second_bn = BatchNormalization()(second_lstm)
second_activation = Activation('tanh')(second_bn)
second_flat = Flatten()(second_activation)

merge=concatenate([first_flat, second_flat])
merge_dense=Dense(3)(merge)
merge_bn = BatchNormalization()(merge_dense)
merge_activation = Activation('tanh')(merge_bn)
merge_dense2=Dense(1)(merge_activation)
merge_activation2 = Activation('tanh')(merge_dense2)

train_x_1 = np.reshape(np.array(train_x_1), [2999, 56, 26])
train_x_2 = np.reshape(np.array(train_x_2), [2999, 56, 26])


model=Model(inputs=[train_x_1,train_x_2], outputs=train_y_class)

optimizer = RMSprop(lr=0.5)
model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])



history = …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning lstm keras

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

在Keras中详细制作自定义损失函数

我尝试在 Keras 中制作自定义损失函数。

我想做这个损失函数

损失函数

输出的维度为80。批量大小为5000。

所以我在下面构建了这个损失函数。但这行不通。

def normalize_activation(y_true, y_pred):
    nb_divide = K.reshape(K.sqrt(K.sum(K.square(y_pred), axis=1)),(5000, 1))
    nb_divide=numpy.tile(nb_divide,80)
    predicted=numpy.divide(y_pred,nb_divide)
    return K.sum(K.square(y_true-predicted)) 
Run Code Online (Sandbox Code Playgroud)

ValueError:使用序列设置数组元素。

出现此错误。我认为y_true,y_pred的形状是(5000,80)。

我应该在哪里修复它?

python neural-network keras

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

标签 统计

keras ×2

python ×2

lstm ×1

machine-learning ×1

neural-network ×1

numpy ×1