2017-03-28 13 views
0

別のネットワークによる予測を使用してKerasでカスタム損失機能を実装したいと考えています。より具体的には、ジェネレータの損失関数で弁別器によって生成された予測を使用したいと思います。しかし、これを実装しようとすると、次のエラーが発生します。ケアでの不自由な損失のためのカスタム損失機能の実装?

if len(array.shape) == 1: 
TypeError: object of type 'TensorVariable' has no len() 

Kerasはカスタム損失機能でネットワークの予測を持つことができますか? ありがとう!

答えて

0

代わりK.shape、例えばのテンソル使用K.ndimの次元数を取得するには:あなたのarrayは、例えば一部デバイス上にあるデータ、のためだけのプレースホルダですような値

import keras.backend as K` 

def myCustomLoss(x): 
    if K.ndim(x) == 3: 
     print("is 3") 

注意あなたのGPU。したがって、len(array)のようなものは、バックエンドがこれらの値を最初にフェッチしなければならないので機能しません。これは、これが非効率的であるため、自動的には行いません。

関連する問題