0
私はテンソルフローコスト関数としてginiインデックス計算を書き留めようとしています。ジニ係数は次のとおりです。 https://en.wikipedia.org/wiki/Gini_coefficientテンソルフローのGiniインデックスを計算する
numpyのソリューションは
def ginic(actual, pred):
n = len(actual)
a_s = actual[np.argsort(pred)]
a_c = a_s.cumsum()
giniSum = a_c.sum()/a_s.sum() - (n + 1)/2.0
return giniSum/n
だろう誰かが私には、例えば(TFでこれを行う方法を見つけ出す手助けすることができ、TFにAの一部にすることができ一切argsortはありませんAFAIK)
損失としてNNに渡されたときに[OK]を、これはよさそうだけど機能がエラーをラインの を返す:---> 14 N = INT(actual.get_shape() - 1]) エラー:例外TypeError:\ __ INT \ __これは、非整数(タイプNoneType) を返さセッションを実行しても正常に動作します – Ilya
これは、 'actual'のプレースホルダ\テンソルの形状が'(None、) 'であるため、あらかじめ定義された長さを持たないので、' n'はグラフ構造。その場合、あなたができることは、それを計算するのではなく、関数の追加引数として 'n'(配列の長さ)を渡すことだけです。 – Lior
私はこれを解決できませんでした(nのデフォルト値を与えようとしましたが、これで解決できません)。私はこの特定の問題について新しい質問をしましたhttps://stackoverflow.com/questions/46674293/custom-loss-function-in-keras-how-to-deal-with-placeholders もう一度、 TFの機能! – Ilya