首页 > 解决方案 > InvalidArgumentError Traceback(最近一次调用最后一次)

问题描述

我收到以下错误,我相信这与我的自定义损失函数和批量大小有关。我不确定如何解决这个问题:

InvalidArgumentErrorncompatible shapes: [32,3] vs. [7541,3]
     [[node metrics_28/profit_loss_metric/mul (defined at /Users/neil/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py:1751) ]] [Op:__inference_keras_scratch_graph_20611]

函数调用栈: keras_scratch_graph

    def profit_loss_metric(y_true,y_pred):
        odds = keras_train_odds_final
        eval = ((y_pred + y_true - 1) * (y_pred + y_true) / 2 * odds) - (K.abs(2*(y_pred)-(y_true))-1)*K.abs(2*(y_pred)-(y_true))/2
        eval = K.sum(eval)
        
        return eval
    
    def profit_loss_neil(y_true,y_pred):
        odds = keras_train_odds_final
        loss = ((y_pred + y_true - 1) * (y_pred + y_true) / 2 * odds * -1) + (K.abs(2*(y_pred)-(y_true))-1)*K.abs(2*(y_pred)-(y_true))/2
        loss = K.sum(loss)
        
        return loss
        
    n_cols = features_array.shape[1]
    
    model = Sequential()
    model.add(Dense(1000, activation='relu', input_shape=(n_cols,)))
    model.add(Dense(500, activation='relu', input_shape=(n_cols,)))
    model.add(Dense(3, activation='linear'))
    model.compile(optimizer='Nadam', loss = profit_loss_neil, metrics=[profit_loss_metric])    
    model.fit(features_array,winning_results_final, validation_split = 0.10, epochs=5, shuffle=True )    

标签: pythonneural-networkrelu

解决方案


错误是因为参数的顺序不正确。我收到此错误是因为作业的顺序不正确

box_confidence, box_xy, box_wh, box_class_probs = yolo_outputs

并且正确的订购是

box_xy, box_wh, box_class_probs, box_confidence = yolo_outputs


推荐阅读