小编Phi*_*e C的帖子

如何在keras中实现自定义指标?

我收到此错误:

sum()得到一个意外的关键字参数'out'

当我运行此代码时:

import pandas as pd, numpy as np
import keras
from keras.layers.core import Dense, Activation
from keras.models import Sequential

def AUC(y_true,y_pred):
    not_y_pred=np.logical_not(y_pred)
    y_int1=y_true*y_pred
    y_int0=np.logical_not(y_true)*not_y_pred
    TP=np.sum(y_pred*y_int1)
    FP=np.sum(y_pred)-TP
    TN=np.sum(not_y_pred*y_int0)
    FN=np.sum(not_y_pred)-TN
    TPR=np.float(TP)/(TP+FN)
    FPR=np.float(FP)/(FP+TN)
    return((1+TPR-FPR)/2)

# Input datasets

train_df = pd.DataFrame(np.random.rand(91,1000))
train_df.iloc[:,-2]=(train_df.iloc[:,-2]>0.8)*1


model = Sequential()
model.add(Dense(output_dim=60, input_dim=91, init="glorot_uniform"))
model.add(Activation("sigmoid"))
model.add(Dense(output_dim=1, input_dim=60, init="glorot_uniform"))
model.add(Activation("sigmoid"))

model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=[AUC])


train_df.iloc[:,-1]=np.ones(train_df.shape[0]) #bias
X=train_df.iloc[:,:-1].values
Y=train_df.iloc[:,-1].values
print X.shape,Y.shape

model.fit(X, Y, batch_size=50,show_accuracy = False, verbose = 1)
Run Code Online (Sandbox Code Playgroud)

除了在批处理上执行循环和编辑源代码之外,是否可以实现自定义指标?

python metrics neural-network deep-learning keras

18
推荐指数
2
解决办法
3万
查看次数

(如何)你可以使用合身训练模型两次(多次)sklearn.

示例:我的数据不适合内存我可以这样做:

model=my_model
for i in range(20)
       model.fit(X_i,Y_i)
Run Code Online (Sandbox Code Playgroud)

这将删除前19个合身.并保持最后一个.我怎么能避免这个?我可以重新训练保存和加载的模型吗?谢谢

python machine-learning scikit-learn

15
推荐指数
2
解决办法
9357
查看次数