手書き文字判別の方法をもう少し考えたい
mnistとは人が手で書いた0から9までの数字を大量に集めた画像データ集 学習者はこれらのデータを教師データとして取り込みモデルを学習させ、そのモデルをテストすることで学習がどのように実行されるかを学ぶ。
6月17日 キャンパスクリーンデー
7月2日 大館鳳鳴 午前中
7月3日 13:00〜 宮地
7月10日 英語 発表
7月27日 オープンキャンパス
耐候性鋼橋の耐候性鋼材の錆の現地調査(日本鉄鋼連盟、土木研究センター、東北の大学や高専の土木構造系研究室の共同研究) と何らかの定量化手法との比較を(人間の現場での評価を教師として)AIに機械学習させてみる。
(青木・後藤)(共同研究なので誰かやってほしい。何年かは続く見込み)
現場デジカメ撮影の画像データ(伊藤さんの卒論2004:概要pdf,スライドpdf)
セロテープ試験の2値化データ(藤原さんの卒論2005:概要pdf,スライドpdf)
膜厚計の錆厚データ(橘さん2006:概要pdf,スライドpdf)
(現場で簡単なのはデジカメ、セロテープはややめんどう、膜圧はもっとめんどう)
・畳み込みニューラルネットワークを用いた腐食環境が異なる鋼材腐食部劣化度判定の試み
・画像処理とパターン認識手法を利用した耐候性鋼材のさび外観評価
・土木工学分野における人工知能技術活用のために解決すべき課題と進めるべき研究開発
・2024/7/3
課題 どの程度の文字が正しく判別できているかを説明できるようにする 実際の手書き文字を判別させてみたい
・2024/6/26までの課題
手書き文字判別までのプロセスを確定させる
成果 本を参考にニューラルネットワークを実装することができた 学習することで精度が高くなる過程が確認できた テストデータを用いて認識精度を確認したところ2つの精度に差がないことが分かる ミニバッチのサイズ(取り出す数)を100として、毎回60000個の訓練データからランダムに100個のデータを抜き出している 600回 = 1エポック
認識精度
epoch → 一つの訓練データのすべてを使い切って1周した時を1とする、訓練データを何回用いたかを表す数
・2024/6/19までの課題
引き続き本で学習を進める 文字判別の仕組みを理解したい
あまり進捗なし
今度耐候性橋梁を見に行きたい
・2024/6/12までの課題
千代岡さんから借りたpythonの本を読み終える
2冊目も読み終えたい
発表内容:pythonについて学習を進めている 特にdeeplearningの基礎について
今現在はmnist(エムニスト)という手書き数字の画像セットのダウンロードができたので、次回までに文字を判別する仕組みについて学びたいと思う
mnist:mnistは機械学習の分野で最も有名なデータセットの一つであり、簡単な実験から論文として発表される研究まで様々な場所で利用されている
mnistデータセットは、0から9までの数字画像から構成されている 訓練画像が60000枚、テスト画像が10000枚用意されており、それらの画像を使用して学習と推論を行う
一般的なmnistデータセットの使い方では、訓練画像を使って学習を行い、学習したモデルでテスト画像に対してどれだけ正しく分類できるかを計測する
mnistの画像
何の情報を判別させるか、(明るさ(色スケール)、セロテープ試験、膜厚試験
今度耐候性橋を見に行く
・2024/5/29 までの課題
機械学習環境と構築する
2024-06
2024-06-28
/ch04/zisaku/two_layer_net_kairyou.py
実際の手書き文字を読み込ませられたが、うまく判別できなかった その原因としてはピクセル値がうまく変換できていないことが考えられる 次回はその原因を解決したい
2024-06-26
パソコンをお願いした 買っていただけるみたい ありがとうございます
機械学習とは重みとバイアスを最適なものに導く作業のこと
2024-06-25
機械学習の概要をなんとなく理解できた
2024-06-24
今日も本を呼んだ 明日コードを実装してみたい
2024-06-23
人通り読み終えられた 理解を深めたい
2024-06-22
進捗なし
2024-06-13
忘れている箇所が多かったので復習した
2024-06-12 ゼミがあった 引き続き進める
2024-06-11
mnist(エムニスト)データセットのダウンロード方法がわからない
githubをダウンロードするといいのかも?
githubのダウンロード方法 codeからdownload zip
zipファイルの解凍
圧縮 zip -r xxxx.zip directory 解凍 unzip xxxx.zip
※unarコマンドを@Hayakuchi0さんから教えてもらいました。 Windows上で日本語ファイル名のファイルをzipで圧縮して、Linux上でunzipにより解凍すると文字化けすることがありますが、unarで解凍すると文字化けしないようです。
unar xxxx.zip
私が確認した環境CentOS7にはunarはインストールされていなかったので、 インストールして試しました。
unarはzip以外も解凍できるようです。
cd anaconda3
cd deep-learning-from-scratch-master
cd ch03
2024-06-10
進捗(120/273)
2024-06-09 進捗 (96/273)
2024-06-08 進捗(53/273)
2024-06-07
anaconda3からnumpyを開くことができた。
2024-06-06
明日やること : Numpyのダウンロード
・2024-06-04.05
進捗なし
・2024-06-03
引き続き本を読み進めたい
・2024-06-02
一冊目を読み終えたが、まだ理解しきれてない箇所が多い
・2024-06-01
第10章まで読み終えた
2024-05
・2024-05-31
第8章まで読み終えた
・2024-05-30
pythonの本を使って学習を進めた また、デスクトップのセットアップもしてもらった 引き続き、pythonの勉強を進めたい
・2024-05-29
ゼミがあった。次回のゼミまでに本を読み終えたい
・2024-05-28 (火) 13:16:24 condaコマンドを認識させることができた
Python 3.11.7 (main, Dec 15 2023, 18:12:31) [GCC 11.2.0] on linux Type "help", "copyright", "credits" or "license" for more information.
文字の並べ替えプログラム /pyworks/words_sort.py 画像保存名:words.sort.png
・2024-05-27 condaコマンドが認識されない もう一度やり直さないといけないかも
・2024-05-26 pythonの本を読んだ
・2024-05-25 進捗なし
・2024-05-24 進捗なし
・2024-05-23 pythonの本を読んだ pythonの仕組みについてなんとなく理解が深まった
・2024-05-22 anacondaをインストールできたと思う tensorflowなどのライブラリのインストールは後日にしようと思う
anacondaをインストールしたことでpython3.8を起動できている
※anacondaは無償区分と有償区分があるらしい(参考記事)
無償で使える条件として 個人かつ非商用目的による使用 教育機関における学生または教員の使用 とあるので大丈夫だと思う
vs code(テキストエディタ:pythonのコードを一つにまとめるためのもの)のダウンロードもできた
vs codeの開き方:ターミナルでcodeと入力
じゃんけんプログラム
・2024-05-21
機械学習を行うための環境をつくるためのプロセスを整理した
1.機械学習を行うためにはPythonが実行できるための開発環境が必要
そのためにanacondaをインストールする
anacondaをインストールすることで複数の仮想環境を作成して切り替えて使える
2.仮想環境の作成を行い、必要なライブラリをインストールする
Numpy:数値計算 Pandas:データ操作と分析 Matplotlib/Seaborn:データ可視化 Scikit-learn:ディープラーニング TensorFlow/Keras:ディープラーニング PyTorch:ディープラーニング
・2024-05-20 進捗なし
・2024-05-19 前提知識がなくて理解が進まない とりあえず、tenslorflowをダウンロードしてみたいと思う。
ubuntuの場合直接ダウンロードできる と思う
・2024-05-18 機械学習の環境構築するための手順
1.パソコンを準備(Linux ubuntu20.04)
2.言語を決める(python)
3.言語をインストールする(python2.7がインストール済み)
4.環境構築ツールを導入する
anacondaが最適かも
tensorflowを使用するためにはハードウェアの性能の高さが求められる?
tensorflowとは機械学習に用いるためのソフトウェアライブラリ
・2024/05/17 機械学習について調べてみた 教師あり学習 数値を予測する回帰 カテゴリを予測する分類
・2024/05/16 機械学習の環境構築についてもう少し調べたい ubuntuでの環境構築方法について
・2024/05/15 使用しているパソコン Ubuntu20.04 フリーの機械学習ツールに何があるか ex.tensorfolw
パソコン上に機械学習ができる仮想環境を整理する必要がある
3年次
エラーコード [#dd0f431c]
時間が足りないとき
!<S> Exception user raised but not interceptee. ! ! The bases are fermees. ! ! Type of the exception: ArretCPUError ! ! [('?', (), (), ())] ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
春課題 弾塑性 [#td1a199a]
創造工房第7回(12/8) [#w0f71c42]
サンドイッチ梁:単純梁(木材+鋼材)の解析 [#v5b1d60b]
メッシュの長さ | 要素数 | 変位(mm) | 相対誤差(%) | 計算者 |
0.7 | 155192 | 0.08378905246 | 15.365 | 安藤 |
0.8 | 138808 | 0.08380386491 | 15.350 | 安藤 |
0.9 | 82587 | 0.083707073981 | 15.45 | 兼田 |
1.1 | 38671 | 0.084201207602 | 14.95 | 兼田 |
1.2 | 31929 | 0.083688 | 15.466 | 柴田 |
1.3 | 28621 | 0.083669 | 15.4857 | 柴田 |
1.4 | 28854 | 0.08368 | 15.47 | 佐藤 |
1.5 | 20015 | 0.084052 | 15.10 | 佐藤 |
1.6 | 19448 | 0.0835402938 | 15.62 | 皆川 |
1.7 | 13801 | 0.0834355098 | 15.72 | 皆川 |
1.8 | 12528 | 0.083733 | 15.42 | 永山 |
1.9 | 11769 | 0.083924 | 15.23 | 永山 |
2 | 10699 | 0.084076876559 | 15.074 | 辻 |
3 | 3579 | 0.08414561753 | 15.004 | 辻 |
4 | 1628 | 0.082794 | 16.37 | 服部 |
5 | 1016 | 0.083033 | 18.89 | 服部 |
6 | 839 | -0.082882 | 16.26 | 梶原 |
7 | 554 | -0.080871 | 18.28 | 梶原 |
8 | 285 | 0.079995 | 19.20 | 工藤 |
9 | 261 | 0.078980 | 20.22 | 工藤 |
10 | 232 | 0.081911 | 17.26 | 佐々木 |
11 | 208 | 0.075676 | 23.56 | 佐々木 |
創造工房第6回(11/29) [#x7bfb3cd]
単純梁(異方性1次・等方性2次)の解析 [#u789f929]
メッシュ長さ | 要素数 | 変位 | 相対誤差 | 計算者 |
0.7 | 144563 | 0.505252 | 2.76 | 安藤 |
0.8 | 141517 | 0.504692 | 2.64 | 安藤 |
0.9 | 91648 | 0.502595 | 2.216 | 兼田 |
1.1 | 27160 | 0.489914 | 0.363 | 兼田 |
1.2 | 24675 | 0.487088 | 0.791 | 柴田 |
1.3 | 23446 | 0.4868010 | 0.995 | 柴田 |
1.4 | 17738 | 0.485999 | 1.16 | 佐藤 |
1.5 | 15438 | 0.485180 | 1.33 | 佐藤 |
1.6 | 15900 | 0.483286 | 1.71 | 皆川 |
1.7 | 12142 | 0.477952 | 2.80 | 皆川 |
1.8 | 11604 | 0.482085 | 1.9554 | 永山 |
1.9 | 10391 | 0.470887 | 4.2329 | 永山 |
2 | 10291 | 0.480910 | 2.19 | 辻 |
3 | 2328 | 0.431937 | 12.15 | 辻 |
4 | 1500 | 0.430156 | 12.52 | 服部 |
5 | 432 | 0.282968 | 42.45 | 服部 |
6 | 356 | 0.3441556 | 30.00 | 梶原 |
7 | 196 | 0.213934 | 56.49 | 梶原 |
8 | 104 | 0.229874 | 53.25 | 工藤 |
9 | 81 | 0.232308 | 52.75 | 工藤 |
10 | 78 | 0.203271 | 58.65 | 佐々木 |
11 | 63 | 0.222316 | 54.78 | 佐々木 |
メッシュ長さ | 要素数 | 変位 | 相対誤差 | 計算者 |
0.7 | 144563 | 0.430124 | 3.22 | 安藤 |
0.8 | 141517 | 0.430132 | 3.22 | 安藤 |
0.9 | 91648 | 0.430020 | 3.197 | 兼田 |
1.1 | 27160 | 0.429828 | 3.151 | 兼田 |
1.2 | 24675 | 0.429836 | 3.15 | 柴田 |
1.3 | 23446 | 0.42974 | 3.13 | 柴田 |
1.4 | 17738 | 0.429797 | 1.3 | 佐藤 |
1.5 | 15438 | 0.429958 | 3.14 | 佐藤 |
1.6 | 15900 | 0.429755 | 3.18 | 皆川 |
1.7 | 12142 | 0.429676 | 3.11 | 皆川 |
1.8 | 11604 | 0.429829 | 3.1507 | 永山 |
1.9 | 10391 | 0.429684 | 3.1159 | 永山 |
2 | 10291 | 0.429620 | 3.10 | 辻 |
3 | 2328 | 0.429169 | 2.99 | 辻 |
4 | 1500 | 0.429254 | 3.01 | 服部 |
5 | 432 | 0.428170 | 2.75 | 服部 |
6 | 356 | 0.428452 | 2.82 | 梶原 |
7 | 196 | 0.42591 | 2.21 | 梶原 |
8 | 104 | 0.426074 | 2.25 | 工藤 |
9 | 81 | 0.425552 | 2.12 | 工藤 |
10 | 78 | 0.488382 | 17.20 | 佐々木 |
11 | 63 | 0.423972 | 9.0534 | 佐々木 |
11/24(金)創造工房5回目 [#e5d84b63]
単純梁(等方性1次)の解析 [#tb5d98da]
メッシュ長さ | 要素数 | 変位 | 相対誤差 | 計算者 |
0.7 | 1455234 | 0.422484 | 0.01388 | 安藤 |
0.8 | 142973 | 0.422570 | 0.01409 | 安藤 |
0.9 | 91648 | -0.420437 | 0.897 | 兼田 |
1.1 | 27160 | -0.405618 | 2.659 | 兼田 |
1.2 | 24675 | 0.404349 | 2.96 | 柴田 |
1.3 | 23446 | 0.404185 | 3.00 | 柴田 |
1.4 | 17738 | 0.398604 | 4.34 | 佐藤 |
1.5 | 15438 | 0.396593 | 4.83 | 佐藤 |
1.6 | 16122 | 0.398212 | 4.44 | 皆川 |
1.7 | 12026 | 0.393411 | 5.59 | 皆川 |
1.8 | 11604 | 0.393668 | 5.53 | 永山 |
1.9 | 10391 | 0.390695 | 6.24 | 永山 |
2 | 10921 | -0.395103 | 5.18 | 辻 |
3 | 2328 | -0.324762 | 22.06 | 辻 |
4 | 1500 | -0.155013 | 62.80 | 服部 |
5 | 432 | -0.065278 | 84.33 | 服部 |
6 | 357 | 0.213062 | 48.87 | 梶原 |
7 | 196 | 0.1019 | 75.55 | 梶原 |
8 | 104 | 0.1158624 | 72.20 | 工藤 |
9 | 81 | 0.1255118 | 69.88 | 工藤 |
10 | 78 | -0.07733 | 81.44 | 佐々木 |
11 | 63 | -0.1999 | 52.03 | 佐々木 |
11/17(金)創造工房4回目 [#y86d3d92]
片持ち梁の解析(サロメ) [#ydde7141]
メッシュ長さ | 要素数 | 先端変位(4隅の平均値)[mm] | 相対誤差(\( \frac{salome-手計算}{手計算} \)) | 計算者 |
0.7 | 198464 | 6.54281 | 1.91 | 安藤 |
0.8 | 113812 | 6.5104 | 2.39 | 安藤 |
0.9 | 40280 | 6.3631525 | 4.60 | 兼田 |
1.1 | 30055 | 6.3363525 | 5.00 | 兼田 |
1.2 | 26467 | 6.3043375 | 5.48 | 柴田 |
1.3 | 25180 | 6.304355 | 5.48 | 柴田 |
1.4 | 32212 | 6.31612 | 5.31 | 佐藤 |
1.5 | 17753 | 6.1209 | 8.23 | 佐藤 |
1.6 | 14296 | 6.2044625 | 6.98 | 皆川 |
1.7 | 13596 | 6.2156625 | 6.81 | 皆川 |
1.8 | 2866 | 5.737755 | 13.98 | 永山 |
1.9 | 6001 | 5.7263625 | 14.15 | 永山 |
2 | 5617 | 5.6458525 | 15.355 | 辻 |
3 | 2309 | 5.4728755 | 17.948 | 辻 |
4 | 617 | 3.6160575 | 0.458 | 服部 |
5 | 494 | 3.8580375 | 0.422 | 服部 |
6 | 581 | 2.50682 | 62.416 | 梶原 |
7 | 133 | 1.41225 | 78.827 | 梶原 |
8 | 78 | 1.2887175 | 80.68 | 工藤 |
9 | 72 | 1.2879925 | 80.69 | 工藤 |
10 | 60 | 1.14344 | 82.85 | 佐々木 |
11 | 65 | 1.23124 | 81.154 | 佐々木 |
10/27(金) 創造工房実習2回目 [#r022fb54]
コマンド [#nbf6e469]
ls :今いる場所
cd :ファイルを開く
pwd :今いる場所
gedit (ファイル名) :テキストファイルを開く
cp (ファイル名) :コピー
vi (ファイル名) :テキスト上で表示
Esc : q テキストを閉じる (w 保存 q 出る)
cat :確認
rm (ファイル名) :削除
cd .. :一つ前に戻る
cd /(住所) :住所にいく
10/20(金)創造工房1回目 [#ae52abcf] あああああ
表サンプル [#ebafbcdf]
メッシュの長さ | 要素数 | 変位[mm] | 相対誤差(salome−手計算/手計算) | 計算者 |
0.7 | 安藤 | |||
0.8 | 安藤 | |||
0.9 | 兼田 | |||
1.1 | 兼田 | |||
1.2 | . | 柴田 | ||
1.3 | 柴田 | |||
1.4 | 佐藤 | |||
1.5 | 佐藤 | |||
1.6 | 皆川 | |||
1.7 | 皆川 | |||
1.8 | 永山 | |||
1.9 | 永山 | |||
2 | 辻 | |||
3 | 辻 | |||
4 | 服部 | |||
5 | 服部 | |||
6 | 梶原 | |||
7 | 梶原 | |||
8 | . | 工藤 | ||
9 | 工藤 | |||
10 | 佐々木 | |||
11 | 佐々木 |
日時置換文字
2024-05-28 13:15:45 2024-05-28 (火) 13:15:45
行中で &date; と書くと、更新時の日付に置換されます 行中で &time; と書くと、更新時の時刻に置換されます 行中で &now; と書くと、更新時の日時に置換されます
&date;、 &time;、 &now;は、記事が書き込まれるときに置換されて記録されます。 &date;、 &time;、 &now;は、他のインライン要素の子要素になることができます。 &date;、 &time;、 &now;は、他のインライン要素を子要素にはできません。
2025-05-04 00:16:11 2025-05-04 (日) 00:16:11
行中で &_date; と書くと、表示時の日付に置換されて出力されます。 行中で &_time; と書くと、表示時の時刻に置換されて出力されます。 行中で &_now; と書くと、表示時の日時に置換されて出力されます。
環境構築
ITにおける「環境」とは、導入されるシステムやソフトウェアから見た、そのコンピュータ全体のこと 環境構築とは、作業に適した環境を整えること 実行環境と開発環境がある
実行環境
実行環境とは、プログラムやソフトウェアが稼働するために必要なものが揃っている環境のこと プログラムやソフトウェアを動かすためには、条件を整える必要がある。 回線や機材といったハードウェアや、そのプログラミムが動作するためのコンピューター内のソフトウェアです。 「実行環境構築」とは、あるプログラムやソフトウェアを動かすための環境を整えることを指す
開発環境
システムを開発するために必要な環境のことを指す。また、インターネットが必要であれば準備をする 必要なソフトウェアがあればインストールするなど、開発に必要な条件を整えることを「開発環境構築」という 「開発環境」で開発されたシステムは「テスト環境」にて正しく動作するか検証され、ここで問題がなければ「本番環境」と呼ばれる環境で実際に使われることになる。
ローカル環境
個人のコンピュータ内に構築された環境のこと 仮想マシンとは、ローカル環境の中に、ある特定の環境を模して構築されたソフトウェアのこと 個人のコンピュータの中に、擬似サーバーを用意するというイメージ
UNIXコマンド https://www.str.ce.akita-u.ac.jp/~gotou/linux/vine.html#unix
vs codeの開き方:ターミナルでcodeと入力 pythonの開き方:ターミナルでpython(バージョン)と入力 pythonの閉じ方:ctrl + D
anacondaのライブラリなどを開く方法:cd anaconda3 → python
※「,」は表中に入れてしまうと、列が増えてしまうため「,(大文字)」or「、」のどちらかで入力している
用語 | 意味 | 使い方例(入力) | 出力結果 |
len | 長さを測る | len('python') | 6 |
str | 引数を文字列に変換する | 'python'+ str(version) | 'python3.6' |
データの内容を表示する | print('python', 3.6) | python 3.6 | |
sepをつけた場合 | print('python',sep='---' | python---3 | |
range | 範囲、並び | number_list10 = range(10) -> number_list_10 | range(0、10) |
address | 変数に名前をつける(文字列データ) | address = 'Tokyo、Japan' | 特になし |
split | 分ける | address.split(',') | ['Tokyo','Japan'] |
split | 例 | address.aplit('o') | ['T'、'ky'、'Japan'、] |
upper | 文字を大文字に変換する文字列のメソッド | address.upper() | 'TOKYO'、'JAPAN' |
index | 引数で指定した文字が最初に出てくるのが何文字目か | address.index('、') | 5(indecは最初の文字を0として数える) |
import | インポートする | import datetime |
リスト(list)
空っぽのリストを作る ー> new_list = []
list | 組み込み関数 | list(range(1、11)「一から始まって11の手前まで」という意味になる | [1、2、3、4、5、6、7、8、9、10] |
list_A | リストを作る | list_int = [0、1、2、3] -> print(list_int) | [0、1、2、3] |
list_A[x] = [1] | xを1に変える | list_int[0] = 1 | 特になし |
list_A.append(1) | 一番うしろに1という要素を追加 | list_int.append(1) | 特になし |
list_A.insert(x、y) | xの要素の前にyを追加 | list_int.insert(1、5) | 特になし |
list_A.pop(x) | x番目の要素を戻すと同時に削除 | list_int.pop(1)] | |
list_A.remove('X') | 指定の要素をそのまま削除 | list_mix.remove('test') | |
list_A + list_mix | リストの連結 | list_int + list_mix | |
list_A.extend(list_B) | リストの拡張 | list_int.extend(list_mix) |
リスト並べ替え「list_A.メソッド」
メソッド | 意味 | 備考 |
sort | 小さい順 昇順 | 文字はアルファベット順、大文字ー>小文字の順 |
reverse | データの順番を逆さまにする |
タプル(要素の追加や削除ができないリスト)
tuple_test = (1、2、3、'100yen') |
セット(単純なデータの集まり リストやタプルのように順番もなければ辞書のような値を呼び出すキーもない 箱の中におもちゃが入っているイメージ)
特徴は同じものを2つ入れられない
test_set = set() | setを作成 |
test_set.add(1) | 要素を追加 |
test_set.remove(3) | 要素を削除 |
辞書型
変数 = {key:value} | 意味 |
country_code = {1:'America'、39:'Italia、86:'China'} | 組み合わせを作成 |
country_code[81] = 'Japan' | 81とJapanという組み合わせを追加 |
datetime型 [#wb96f17d]
データ型 | 説明 |
date | ある1日の(年月日)を表現する |
time | ある時刻(時分秒)を表現する |
datetime | ある日のある時刻(年月日時分秒)を表現する |
timedelta | 2つの時点の差を表現する |
tzinfo | 世界中の時間を扱うためのどこのタイムゾーンであるかの情報を保持する |
mnistとは人が手で書いた0から9までの数字を大量に集めた画像データ集 学習者はこれらのデータを教師データとして取り込みモデルを学習させ、そのモデルをテストすることで学習がどのように実行されるかを学ぶ。
・データとラベルの違い
データ→手書きで書かれた数字を画像にした画像データ ラベル→その画像に書かれた数字を表すものをラベルという
load_mnist関数「(訓練画像,訓練ラベル),(テスト画像,テストラベル)」
・重みとバイアスを訓練データに適応するように調整することを「学習」という
ミニバッチ学習を実施する上で重要となるのが、バッチサイズ バッチサイズは、データをグループに分けた際の数がどれくらいになるのかをあらわしたもので、バッチサイズが小さいほど処理負担は小さく、大きいほど負荷が大きくなり、なおかつデータ1つ1つの個性も失われてしまう傾向にある 基本的にバッチサイズは小さいサイズから始めるのが効果的である。バッチサイズが小さいと学習にかかる時間を短くできるだけでなく、データの個性を尊重しながら学習を進められる バッチサイズが小さい場合はノイズの影響を受けやすくなるため、対策が必要→そこで役立つのが学習率 小さいバッチサイズで学習率を大きく設定することでノイズの影響を受けにくくできます。
・opencvをインストールする
pip install opencv-python
石黒さんがPCを組み立てられると仰っていたので可能であるならGPUを複数枚搭載できるマザーボードにしてもらうのがいいかもしれない
cv2とは画像を扱うためのpythonライブラリ内に存在するモジュールのこと kerasはニューラルネットワークのライブラリ「読みやすく簡潔なアーキテクチャで迅速に実装が可能であること」「機械向けではなく人間向けに設計冴えたユーザーフレンドリーなライブラリ」であることを重視して設計されている
/anaconda3/deep-learning-from-scratch-master/ch04$ python convert_to_grayscale.py データファイルを入力
.astype(np.uint8)
if __name__ == "__main__":
# ここで変換したい画像ファイルのパスを指定して呼び出す file_name = "/home/kouzou/anaconda3/deep-learning-from-scratch-master/ch04/deta_9.png" dim3RGB_to_dim1gray(file_name)
import sys, os sys.path.append(os.pardir) # 親ディレクトリのファイルをインポートするための設定 import numpy as np import cv2 import matplotlib.pyplot as plt from dataset.mnist import load_mnist from two_layer_net import TwoLayerNet
# データの読み込み (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, one_hot_label=True)
network = TwoLayerNet(input_size=784, hidden_size=50, output_size=10)
iters_num = 10000 # 繰り返しの回数を適宜設定する train_size = x_train.shape[0] batch_size = 100 learning_rate = 0.1
train_loss_list = [] train_acc_list = [] test_acc_list = []
iter_per_epoch = max(train_size / batch_size, 1)
for i in range(iters_num):
batch_mask = np.random.choice(train_size, batch_size) x_batch = x_train[batch_mask] t_batch = t_train[batch_mask] # 勾配の計算 #grad = network.numerical_gradient(x_batch, t_batch) grad = network.gradient(x_batch, t_batch) # パラメータの更新 for key in ('W1', 'b1', 'W2', 'b2'): network.params[key] -= learning_rate * grad[key] loss = network.loss(x_batch, t_batch) train_loss_list.append(loss) if i % iter_per_epoch == 0: train_acc = network.accuracy(x_train, t_train) test_acc = network.accuracy(x_test, t_test) train_acc_list.append(train_acc) test_acc_list.append(test_acc) print("train acc, test acc | " + str(train_acc) + ", " + str(test_acc))
("train acc, test acc | " + str(train_acc) + ", " + str(test_acc))