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

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

新規登録して質問してみよう
ただいま回答率
85.48%
機械学習

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

Python

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

Q&A

解決済

1回答

649閲覧

TensorFlowのvariableを0~1の範囲で学習させてたい

Amanokawa

総合スコア41

機械学習

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

Python

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

0グッド

0クリップ

投稿2019/04/20 01:30

通常、variableを用意して何かしらのoptimizerを使用すると、活性関数の形にも依りますが勾配計算により-∞~+∞の範囲でvariableが変動するかと思います。
一部のvariableの上限を1,下限が0となる範囲で学習させたいのですが、どのように記述すればいいでしょうか?
指定の範囲で学習させたいvariableは以下の一つであり、その他convなどの一般的なネットワークを組んでおります。

python

1noise = tf.get_variable("noise", 2 initializer=tf.random_uniform(shape=[1, 224, 224, 3], minval=0.0, maxval=1.0,dtype=tf.float32), 3 trainable=True)

clip_by_valueという関数が有りますが、これはクリッピングを行うだけなのでvariable自体の学習範囲を決めるものではないという認識です。
何か使える関数や手法が有ればご教示お願いします。

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

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

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

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

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

tiitoi

2019/04/20 02:20

sigmoid 関数ではダメな理由はありますか?
Amanokawa

2019/04/20 02:31

投稿ありがとうございます。 たしかにsigmoidを使えば解決しますね。変数そのものにとらわれすぎていました。 ```python noise = tf.get_variable("noise_v", initializer=tf.truncated_normal(shape, stddev=0.01), trainable=True) noise = tf.sigmoid(noise , name="noise") ``` として、sigumoidの出力に注目すればやりたい事が出来そうです。
Amanokawa

2019/04/20 02:38

tiitoiさんにベストアンサーを送って解決済にしたいので何かしら回答へ投稿お願いします。
tiitoi

2019/04/20 03:06

回答に転記しました。
guest

回答1

0

ベストアンサー

出力範囲を制限する際によく使われるのは以下の関数です。

イメージ説明

シグモイド関数 値域 [0, 1]

イメージ説明

tanh 関数 値域 [-1, 1]

Deep Learning - 活性化関数の種類

投稿2019/04/20 03:05

tiitoi

総合スコア21956

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

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

Amanokawa

2019/04/20 03:31

変数にsigmoidを通すことで同様の目的を達成できました。 ```python noise = tf.get_variable("noise_v", initializer=tf.truncated_normal(shape, stddev=0.01), trainable=True) noise = tf.sigmoid(noise , name="noise") ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問