質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2027閲覧

損失関数の呼ばれた回数をカウントしたいです

cdg_26

総合スコア27

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/07/30 14:35

編集2019/07/31 02:08

##質問
kerasで損失関数を自作しました.その中で,損失関数が呼ばれた回数を使いたいと思いまして,以下のようにcountに逐次+1をするようにコードを書きました.しかし,最後のprint(count)の出力が1になってしまいます.
損失関数は1回しか呼ばれてないのでしょうか.

##code

python

1count = 0 2 3def encoder(input_): 4 d1 = Dense(3, activation='relu', name='encoder_input')(input_) 5 d2 = Dense(2, 'encoder_output')(d1) 6 return d2 7 8def decoder(input_): 9 d1 = Dense(3, activation='relu', name='decoder_input')(input_) 10 d2 = Dense(2, name='decoder_output')(d1) 11 return d2 12 13def my_loss_function(y_pred, y_true): 14 global count 15 count += 1 16 return K.mean(K.square(y_pred - y_true), axis=-1) 17 18# input 19input = Input(shape=(2,)) 20 21# output 22output = decoder(encoder(input)) 23 24# model 25model = Model(input=input, output=output) 26 27model.compile(optimizer='adam', loss='my_loss_function') 28model_hist = model.fit(x_train, x_test, 29 epochs=n_epoch, 30 batch_size=1, 31 verbose=verbose, 32 shuffle=True) 33 34print('count=',count) 35#count=1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

参考記事のように他にも関数の呼び出し関数をカウントする方法はあるので、それらを試してみて同じ結果(カウント数1)になれば、「損失関数は1回しか呼ばれてない」と言えるかと思います。

参考記事:【python】呼び出し回数カウント関数を色々な方法で作る

投稿2019/07/31 12:20

amahara_waya

総合スコア1029

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cdg_26

2019/07/31 12:56

回答ありがとうございます. いくつかの方法でカウントしてみた結果,損失関数は1回しか呼ばれていないようでした.(バッチサイズを1に設定していたので,訓練データの数だけ呼ばれていると予想していましたが) 関連して,追加で質問させていただきたいのですが, 今回実現したいことが,1ステップ(1つのデータを読み込み損失を計算する)ごと,外部で用意した配列の要素を指定し損失関数に組み込むということです. ですので,1stepごと配列の要素を指定するindexの値が必要だと考えています. 上のカスタム損失関数の中でindexを得る方法,もしくは,それを実現できる方法をご存知でしたら教えていただきたいです.
cdg_26

2019/07/31 13:21

承知しました また,なにかご存知なことがありましたら,ぜひそちらにコメントお待ちしております.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問