🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

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

Python

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

浮動小数点

浮動小数点は、コンピュータが数値を扱う際に実数を表現する方法のひとつです。 数値を、それぞれの桁の値が並んでいる仮数部と、小数点の場所を示す指数部で表します。

Q&A

解決済

2回答

1561閲覧

python:畳み込みニューラルネットワークで浮動小数点にする意味

python_2019

総合スコア68

Keras

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

Python

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

浮動小数点

浮動小数点は、コンピュータが数値を扱う際に実数を表現する方法のひとつです。 数値を、それぞれの桁の値が並んでいる仮数部と、小数点の場所を示す指数部で表します。

0グッド

0クリップ

投稿2019/11/26 02:30

畳み込みニューラルネットワークのプログラミング(MNISTなど)で、浮動小数点(float32)へ変換する理由はなんでしょうか?
変換しないで処理してはダメなのでしょうか?

ご存じの方、ご指導をよろしくお願いいたします。

X_train = X_train.astype('float32') X_test = X_test.astype('float32')

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

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

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

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

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

2KOH

2019/11/26 03:43

float32 に変換する前の X_train や X_test の型はなんですか?
python_2019

2019/11/26 04:10

ご連絡ありがとうございます。 詳しくはわからないのですが、mnistのサンプル画像をCNNで分類しようとしています。 その過程で、float32が出てきます。 もともとのデータは、エクセルファイルで、特に型に関する処理は行っておりません。 どうぞよろしくお願いいたします。
guest

回答2

0

単精度にしてメモリーの消費を抑えるためです。

投稿2019/11/26 04:53

WathMorks

総合スコア1582

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

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

0

ベストアンサー

まず前提として、演算は被演算子の型をあわせないと行えません。
画像は uint8 型で、ニューラルネットワークのパラメータは通常 float32 型で扱うので、uint8 型を float32 型にキャストする必要があります。

以下の例では、配列 a を int64 型で定義しましたが、float64 との演算を行う際に型が異なるので、float64 の方に暗黙的にキャストされて、結果の配列 b も float64 になることがわかります。

a = np.array([1, 2, 3]) print(a.dtype) # int64 b = a * 3.5 # int64 * float print(b.dtype) # float64

投稿2019/11/26 04:40

tiitoi

総合スコア21956

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

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

python_2019

2019/11/26 07:10

ご回答どうもありがとうございました。 演算は型を合わせないといけないのですね。 今、試しに、以下を削除(#)して実行しましたら、特に問題なく処理できてしまいました。。 浮動小数点に変換しなくてもできるのでしょうか? もし、お分かりでしたら、ご指導お願いいたします。 X_train = X_train.astype('float32') X_test = X_test.astype('float32')
tiitoi

2019/11/26 07:17 編集

コードで明示的に float32 に最初から変換しておけば、あとでキャストする必要はないですし、その2行を消して uint8 のまま突っ込んだとしても、中でどのみち float32 に変換されて、演算が実行されるので結果としては同じことになります。 Python の指針 (The Zen of Python) に従うと「暗黙的より明示的が良い」に該当するので、その2行は消さないほうがいいかもしれません。 https://qiita.com/IshitaTakeshi/items/e4145921c8dbf7ba57ef
python_2019

2019/11/26 07:42

「どのみち float32 に変換」「暗黙的より明示的が良い」とのこと、よくわかりました。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問