問題タブ [mnist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-2.7 - Theano 共有変数のデータへのアクセス
次のように、MNIST データセットを Theano 共有変数に正常にロードしました。
私の質問は、train_set_x と train_set_y の両方でデータにアクセスする方法です。データ セット内の各画像は 28 * 28 ピクセルです。これは長さ 784 のベクトルで、ベクトル内のすべての要素が 0.0 から 1.0 までの値を表す float です。各ベクトル画像に関連付けられたラベルを表し、0 から 9 までの値であるため、ラベルは int にキャストされます。train_set_x マトリックス画像と train_set_y ラベルをループして、各画像とそのラベルのデータを表示できるようにしたい個別に、最終的に画像を画面にプロットします。
mat-file - マティオパフォーマンス
MNIST データセット (サイズは 784*60000) を読み取ろうとしています。MNIST バイナリ形式の読み取りの実装には約 20 秒かかりますが、Matio ライブラリを使用して同じデータセットを .mat 形式で読み取ろうとしたところ、はるかに時間がかかりました。約4~5分 これは、マットファイルを読み取ろうとする方法です。私は何か間違ったことをしていますか?
行列構造体
mat ファイルの読み取り
c++ - RBM が正しく機能しない理由を見つける方法は?
RBM を実装しようとしていて、MNIST データセットでテストしています。しかし、収束しないようです。
28x28 の可視ユニットと 100 の非表示ユニットがあります。サイズ 50 のミニバッチを使用しています。エポックごとに、データセット全体をトラバースします。学習率は 0.01、運動量は 0.5 です。重みは、平均 0.0 および stdev 0.01 のガウス分布に基づいてランダムに生成されます。可視バイアスと非表示バイアスは 0 に初期化されます。アクティブ化としてロジスティック シグモイド関数を使用しています。
各エポックの後、すべてのミニバッチの平均再構築エラーを計算します。取得したエラーは次のとおりです。
チェックする重みのヒストグラムをプロットしました (左から右: 非表示、重み、可視、上: 重み、下: 更新):
エポック 3 後の重みのヒストグラムエポック 3 後 の重みのヒストグラム http://baptiste-wicht.com/static/finals/histogram_epoch_3.png
エポック 4 後の重みのヒストグラムエポック 4 後 の重みのヒストグラム http://baptiste-wicht.com/static/finals/histogram_epoch_4.png
しかし、少し奇妙に見える隠れた偏見を除けば、残りは問題ないようです。
私はまた、隠された重みをプロットしようとしました:
エポック 3 後の重み
エポック 3 後の重み http://baptiste-wicht.com/static/finals/hiddens_weights_epoch_3.png
エポック 4 後の重み
エポック 4 後の重み http://baptiste-wicht.com/static/finals/hiddens_weights_epoch_4.png
(それらは、その関数を使用して 2 色でプロットされます。
)
そして、ここでは、それらはまったく意味がありません...
さらに進むと、再構築エラーはもう少し減少しますが、0.025 を超えないようにしてください。しばらくして勢いを変えても、上がったり下がったりするけど面白くない。さらに、エポックが増えると、重みは意味をなさなくなります。私が見たほとんどの実装例では、完全なデータ セットを 2 ~ 3 回繰り返した後、重みがある程度意味を成していました。
また、可視ユニットから画像を再構築しようとしましたが、結果はほぼランダムに見えます。
実装で何が問題なのかを確認するにはどうすればよいですか? 重みはある範囲内にあるべきですか?データ内で何かが本当に奇妙に見えますか?
完全なコード: https://github.com/wichtounet/dbn/blob/master/include/rbm.hpp
c++ - リトル エンディアン読み取り MNIST ファイル。数値が範囲外です
ubyte形式を読み込もうとしています。リトル エンディアン マシンを使用していることを確認し、ビットをリトル エンディアンに逆にしました。ただし、問題は、変換後にファイルに表示される数値が 255 をはるかに超えていることです。
何か案は?How to read MNIST data in C++?からコードを取得しました 。 それにいくつかの変更を加えましたが、ここに私のコードがあります
サンプル出力スニペット
image - MATLAB での MNIST 画像データベース バイナリ ファイルの読み取り
「myfile.dat」という名前に変更された MNIST 画像データベースのバイナリ ファイルがあります。これは、4 つの符号なし 32 ビット整数のセットと、それに続く符号なし 8 ビット整数のチェーンで構成されます。このファイルを読み取り、その内容を配列として保存したいと考えています。これが私のコードです:
出力は次のとおりです。
(2502, 1) のサイズは予想どおりです。double
しかし、データがであると指定したのに、なぜデータが であると教えてくれるのint
でしょうか?
最初のいくつかの数値がどうあるべきかはわかっていますが、出力データは期待どおりではありません。も試しましたがint32
、同じ問題が発生しますuint
。uint32
r - MNIST 数字認識データ セットのパフォーマンスが低い
私はMNISTの数字認識データセットをいじっていましたが、ちょっと行き詰まっています。私はいくつかの研究論文を読み、理解したすべてを実装しました。基本的に私が行ったことは、最初に分類器を評価するためのトレーニング セットと交差検証セットを作成し、次にテスト セットとトレーニング セットの両方で PCA を実行し、その後、KNN と SVM を使用して分類タスクを実行することでした。私が直面している主な問題は、すべてのセットで PCA を実行してから、トレーニング セットと交差検証セットを分離するか、それらを分離してから、交差検証テストとトレーニング セットで個別に PCA を実行する必要があるかということです。両方のシナリオを試したので、すでに試したことを質問して申し訳ありません。最初のケースでは、私の分類子は見事に機能します。PCA は結果を微調整する主成分を作成する際にテスト データ セットを使用すると推測し、おそらくこれがモデルのバイアスの原因であると思いますが、それ以外の場合、パフォーマンスは約 20% から 30% であり、非常に低いです。そのため、モデルをどのように改良すればよいのか、ちょっと困っています。ヘルプとガイダンスは大歓迎です。参照用にコードを以下に貼り付けました。
================================================== ======================
python - pklファイルを解凍するには?
手書きの数字画像で構成される MNIST データセットの pkl ファイルがあります。
これらの数字の画像をそれぞれ見てみたいので、pkl ファイルを解凍する必要がありますが、方法がわかりません。
pkl ファイルを解凍/解凍する方法はありますか?