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

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

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

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

Python

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

Q&A

解決済

2回答

1081閲覧

kerasを用いたディープラーニングのプログラムについて

hayates7

総合スコア1

Keras

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

Python

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

0グッド

0クリップ

投稿2020/12/07 04:24

前提・実現したいこと

ディープラーニングの勉強を始めた初心者です。
mnistのデータセットを使った簡単なプログラムなのですが、以下の数行の内容を教えて欲しいです。

変数mnistにファッションmnistのデータを入れてxyトレーニングとxyテストに分けていると思います。
質問①:xは画像データ、yは画像のラベルで間違いないでしょうか。
質問②:x_train.reshapeの引数は何を表しているのでしょうか。784は28×28ピクセルの画像という事は分かるのですが…
質問③:np.eye(10)は画像を10個のラベルに分けているという事でしょうか。

発生している問題・エラーメッセージ

mnist = tf.keras.datasets.fashion_mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train = (x_train.reshape(-1, 784) / 255).astype(np.float32) x_test = (x_test.reshape(-1, 784) / 255).astype(np.float32) y_train = np.eye(10)[y_train].astype(np.float32) y_test = np.eye(10)[y_test].astype(np.float32)

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

meg_

2020/12/07 04:33

> mnistのデータセットを使った簡単なプログラム 質問のコードは参考書か何かのコードの一部でしょうか?であればコードの解説はありませんでしたか?
guest

回答2

0

「質問②」が、最初の引数 -1 の意味が分からないということであれば、下記Webページの真ん中あたりの「-1による形状の指定」をご覧ください
NumPy配列ndarrayの形状を変換するreshapeの使い方と-1の意味

投稿2020/12/07 09:00

jbpb0

総合スコア7653

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

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

hayates7

2020/12/08 00:36

ありがとうございます。
guest

0

ベストアンサー

質問①:xは画像データ、yは画像のラベルで間違いないでしょうか。

はい

質問②:x_train.reshapeの引数は何を表しているのでしょうか。784は28×28ピクセルの画像という事は分かるのですが…

形状が (N, 28, 28) の3次元配列を (N, 784) の2次元配列に潰しています。
ネットワークの入力が2次元配列を期待しているので、それに合わせているのでしょう。

質問③:np.eye(10)は画像を10個のラベルに分けているという事でしょうか。

ラベルを onehot 表現に変換しています。

One-hotベクトル(ワンホット表現)の意味とメリット・デメリット - 具体例で学ぶ数学

np.eye(10) は単位行列です。その n 行目を取り出すと、インデックスnの要素が1、それ以外の要素は0の1次元配列が作れます。

python

1print(np.eye(10)) 2# [[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.] 3# [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.] 4# [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.] 5# [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.] 6# [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.] 7# [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.] 8# [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.] 9# [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.] 10# [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.] 11# [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]] 12 13print(np.eye(10)[2]) 14# [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]

投稿2020/12/07 05:01

tiitoi

総合スコア21956

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

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

hayates7

2020/12/08 00:36

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問