Keras の出力で異なる活性化関数を使いそれぞれの損失関数を指定する

画像を認識する機械学習のプログラムを勉強しています。Keras を使って、次のことが学習できるかためしてみました。

  • 画像中に物体が存在するかどうか。
  • 物体が存在するならば、その物体を囲む長方形の位置。

このモデルで、出力に異なる 2 種類の 活性化関数 を使い、それぞれに 損失関数 を指定してみました。

続きを読む

SelectとSelectManyの違い

LinqSelectSelectManyの違いについて。

public static IEnumerable<TResult> Select<TSource, TResult>(
    this IEnumerable<TSource> source,
    Func<TSource, TResult> selector)
//                -------
public static IEnumerable<TResult> SelectMany<TSource, TResult>(
    this IEnumerable<TSource> source,
    Func<TSource, IEnumerable<TResult>> selector)
//                --------------------

これらの違いは、引数に指定する関数selectorの戻り値の型が、TResultかIEnumerable<TResult>かだけである。

続きを読む

1 つのメソッドは 1 つのことに専念する

メソッドはできるだけ単純にしよう。読んで解読する人のことを考えよう。

ここでは例として、指定の文字列中の指定の単語を "<B>" と "</B>" で囲んで強調表示に設定する場合を考える。この動作を分解すると、

  • 指定の文字列から単語を抽出する。
  • 抽出した単語が指定のものならば強調表示する。

という 2 つの内容に分けられる。これを 1 つのメソッドで実現してみると、

続きを読む

Emacsでさっきのコマンドをもう一度実行する

Emacsで、さっきミニバッファで入力したコマンドを、もう一回というときは、

  • C-x ESC ESC (repeat-complex-command)

を入力する。そうすると、ミニバッファにさっきのコマンドが表示されるので、必要に応じて編集し、実行する。

f:id:tt195361:20161226152501p:plain

もう一回前、あるいは次のコマンド、というときは

  • M-p (previous-history-element)
  • M-n (next-history-element)

してみよう。