No video

Pythonによるディープラーニングの作り方〜画像認識〜【Python機械学習入門#10】

  Рет қаралды 40,597

データサイエンス塾!!

データサイエンス塾!!

Күн бұрын

Пікірлер: 79
@nh8225
@nh8225 2 жыл бұрын
めちゃくちゃわかりやすかったです。会社でディープラーニングをやっているのですが、ものすごく参考になりました。 感謝致します。
@nishimaki
@nishimaki 2 жыл бұрын
こちらこそ嬉しいコメントありがとうございます!
@user-mh6ns7tc4v
@user-mh6ns7tc4v 3 жыл бұрын
会社の研修が意味不明だったので参考にさせていただきました。 説明が砕けているので非常にわかりやすく、助かりました。
@nishimaki
@nishimaki 3 жыл бұрын
コメントありがとうございます。 そう言って頂けると大変嬉しいです。今後とも宜しくお願いします!
@seiji7042
@seiji7042 2 жыл бұрын
勉強になります。音声認識について勉強をしています。参考にさせていただいています。
@nishimaki
@nishimaki 2 жыл бұрын
音声認識にもディープラーニングは必要ですね。お役に立てたなら幸いです!
@nishimaki
@nishimaki 3 жыл бұрын
本動画で使用しているソースのダウンロードは下記URLからどうぞ。 analysis-navi.com/?p=3868
@missimissi6007
@missimissi6007 3 жыл бұрын
とてもわかりやすいです。勉強になります。
@nishimaki
@nishimaki 3 жыл бұрын
ありがとうございます。今後ともよろしくお願いします!
@user-do8nb8di6g
@user-do8nb8di6g 3 жыл бұрын
お疲れ様です
@nishimaki
@nishimaki 3 жыл бұрын
ありがとうございます!
@hidamitsuma
@hidamitsuma 2 жыл бұрын
とても勉強になる動画でした.初めてdeep learningがうまくいきそうな予感がします.ありがとうございます. 一つ質問させていただきたいのですが,testフォルダはどのような構成にしたらよいのでしょうか. trainフォルダと同様と同じく0_cat,1_dog, 2_penguinとして数枚の画像データを保存しておけばよいでしょうか?
@nishimaki
@nishimaki 2 жыл бұрын
ご視聴ありがとうございます!はい、その構成で問題ございません。宜しければ5:16〜ご覧頂ければと思います。
@hidamitsuma
@hidamitsuma 2 жыл бұрын
@@nishimaki ありがとうございました.今後とも宜しくお願い申し上げます
@user-hx1vt5ky4k
@user-hx1vt5ky4k Жыл бұрын
度々失礼いたします。 動画内のプログラミング無事動きました。大変参考になりました! 最近、プログラミングなどについて学習を進めていて疑問になった点があります。 ・このプログラミングでの学習率や初期の重み、バイアスはどのように設定していますか? ・損失関数で用いられているsparse_categorical_crossentropyは交差エントロピー誤差と違いますか?
@nishimaki
@nishimaki Жыл бұрын
動作したとの事で何よりです! 学習率、バイアス、重みなどの調整は本動画では扱っておりませんが、モデルの結果を見て試行錯誤する所かと思います。 最近ではOptunaなどパラメータチューニングを自動で行う機構も数多くありますので、そちらを使用する事が多いです。 sparse_categorical_crossentropyは、交差エントロピー誤差と同じかと思います。
@user-hx1vt5ky4k
@user-hx1vt5ky4k Жыл бұрын
@@nishimaki ありがとうございます。今後取り組むとして、NNの構築を改良したいと考えています。CNNなど画像認識でよく使われるものを試してやってみたいです。改良するのにあたり、なにかアドバイス頂けると嬉しいです。 p.s. CNNなどのコードを適用するのは難しいですかね...
@nishimaki
@nishimaki Жыл бұрын
お返事遅くなりました。 NNの構築の改良は簡単で、この動画の「ニューラルネットワークの構築」の部分を書き換えればCNNも含んだ様々なNNを作れます。 色々なNNを作り、精度の変化を見てみるのも面白いかなと思います。
@user-hx1vt5ky4k
@user-hx1vt5ky4k Жыл бұрын
@@nishimaki コメントありがとうございます! トライしてみようと思います!!
@user-yj1mn9py3x
@user-yj1mn9py3x 2 жыл бұрын
とてもわかりやすい解説ありがとうございます。 1つお聞きしたいことがあります。 画像ファイルを読み込んだ後にその画像に任意のドットの点を打って誤認識をするようにしたいのですが、コードが全くできないため教えて頂きたいです。 敵対的サンプルを行いたいです。 この動画の内容とはかけ離れてすみません。
@nishimaki
@nishimaki 2 жыл бұрын
私も経験が無いのですが、画像に任意のドットを打ちたいのであれば、opencv形式の画像とドットの座標を指定したnumpyの演算を行えば良いのかなと思いました。 こちらのページなどはご参考になりませんでしょうか? labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.html
@user-cf7ic5kl2p
@user-cf7ic5kl2p 9 ай бұрын
Googlecolabで行う場合はどうやってデータを読み込ませますか?ドライブでマウントはできるんですけどデータを読み込ませることができません
@is1632
@is1632 3 жыл бұрын
最後に実行するとExpect x to be a non-empty array or dataset.と出てしまいます
@nishimaki
@nishimaki 3 жыл бұрын
ご視聴ありがとうございます。 解決するか不明で申し訳ないのですが、まずはX_train、y_train、X_test、y_testに正しく値が入っているかご確認頂くのが良いかな、と考えます。
@is1632
@is1632 3 жыл бұрын
@@nishimaki 色々と間違っていることに気が付きました!ありがとうございます。これからも動画を楽しみにしています
@user-vf2ke3mq6b
@user-vf2ke3mq6b 2 жыл бұрын
最近機械学習という言葉を耳にすることが増え、気になったため独学で勉強し始めました。 勉強不足なため、見当ちがいな発言をしたら申し訳ございません。 こちらの動画で使用しているコードを実行したのですが、画像を集めるのを手早くしたかったため 赤、青、緑の●の画像を印刷し、それぞれ30枚程度写真を撮って実行しました。 結果はすべてほぼ0.333…となり、このコードは色を判別せず、輪郭で分類していることに気が付きました。 (すべて●にするのではなく、それぞれを別の形にすると同じ比率になることなくうまく動作しました。) 機械学習で色を含めた識別は可能なのでしょうか? 私の調べが悪いのかもしれませんが、調べてみたところ色を含めて学習させる方法が見つからず、 OpenCV等を使用し、色の範囲を定め、何色と一致するか、というようなものが多く見つかりました。 機械学習では色の識別がしにくいのでしょうか?
@nishimaki
@nishimaki 2 жыл бұрын
ご視聴ありがとうございます。 ディープラーニングでは色も認識可能で、この動画で紹介している方法では色も判別するように作ったつもりです。 ただし、ニューラルネットワークによっては画像をモノクロにしてから処理するものもあります。 元々ディープラーニングの画像分析では色の情報よりも輪郭の情報の方が影響が強くなる傾向があるようには感じております。 その上、今回はニューラルネットワークも簡素なものを使用しているので、色の判別がほぼできないモデルになっていた可能性はあるかもしれません。。。
@user-vf2ke3mq6b
@user-vf2ke3mq6b 2 жыл бұрын
@@nishimaki ご返信ありがとうございます。 動画を見返していたところ3にすることで色を判別とおっしゃっており、聞き逃した点を質問してしまいすみません。 ご返信を元にニューラルネットワークを変更、肉付けしたところ各項目40枚の画像、25回の学習で色のみでの判別ができました! ありがとうございます!!
@TT-tg9yj
@TT-tg9yj Ай бұрын
@@user-vf2ke3mq6b さん、私もテストの結果で同じような印象を持ちました。よければ色の判別性能をよりよくするためにどのような変更をされたか教えてもらうことはできますか?
@yutaka364
@yutaka364 2 жыл бұрын
良い講座をありがとうございます! 画像データの準備で躓いています。 ーーーーーーーーーーーーーーーーーーーーーーー ---> 26 X_train = np.array(X_train) /255.0 27 y_train = np.array(y_train) 28 X_test = np.array(X_test) /255.0 ValueError: could not broadcast input array from shape (100,100,3) into shape (100,100) ーーーーーーーーーーーーーーーーーーーーーーー これは私の環境によるものでしょうか?
@nishimaki
@nishimaki 2 жыл бұрын
ご視聴ありがとうございます! ソースコードは動画内のものと完全に一致していますでしょうか? その上で、画像はカラーですかね? 「3」というのは色(赤・緑・青)の情報なので、もしかしたらモノクロだと画像を読み込んだ時点でその情報が既に無いのかなと。。。
@user-xv6pp2gq9b
@user-xv6pp2gq9b 2 жыл бұрын
@@nishimaki ありがとうございます。ソースコードはダウンロードさせていただいたものを参考にしています。また、カラー画像を使用したつもりです。 画像を再確認して再チャレンジしてみます。
@onmiri4160
@onmiri4160 3 жыл бұрын
これはイッヌ!!
@metalgea2006
@metalgea2006 3 жыл бұрын
(x_train,y_train),(x_test,y_test)=tf.keras.datasets.mnist.load_data()でデータを取り入れたのですが、この場合にX_train.shapeで求められた形をinput_shapeにそのまま入れたらクラッシュします。どのようにreshapeすれば上手く入力層に入れる事が出来るでしょうか?
@nishimaki
@nishimaki 3 жыл бұрын
ご視聴ありがとうございます。 データによって入力層のshapeは変わるので一概には言えないのですが、MNISTをお使いでしたら下記サイトなどご参考になりませんでしょうか? weblabo.oscasierra.net/python/keras-mnist-sample.html
@metalgea2006
@metalgea2006 3 жыл бұрын
@@nishimaki 教えてくださったサイトで解決しました。ありがとうございます!!
@meeait5801
@meeait5801 3 жыл бұрын
動画見させていただきました。 X_train = np.array(X_train) / 255.0 y_train = np.array(y_train) X_test = np.array(X_test) / 255.0 y_test = np.array(y_test) これを実行した後にX_trainを実行すると array([], dtype=float64) と表示され、model.fit(X_train,y_train,epochs=10)で学習を始めるときに Epoch 1/10 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) in () 1 model.compile(optimizer="adam",loss="sparse_categorical_crossrntropy",metrics=["accuracy"]) ----> 2 model.fit(X_train,y_train,epochs=10) /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing) 1192 logs = tf_utils.sync_to_numpy_or_python_type(logs) 1193 if logs is None: -> 1194 raise ValueError('Expect x to be a non-empty array or dataset.') 1195 epoch_logs = copy.copy(logs) 1196 ValueError: Expect x to be a non-empty array or dataset. このようなエラーが出てしまいます。自分はgoogledriveでやっているのでそのせいでできないのでしょうか? 長々すみません。アドバイスいただけるとありがたいです。
@nishimaki
@nishimaki 3 жыл бұрын
ご視聴ありがとうございます。 X_trainに何もデータが入っていないために起こるエラーに思えます。 おそらく、 for f in glob.glob("image/*/*/*.jpg") という正規表現の書き方が、お使いの環境と合っていないのではないかな、、、と。 まずはソースファイルと同じ場所に「image」というディレクトリがあり、 その3階層下にjpgが格納されているか、チェックしてみてください。 また、ディレクトリの区切り記号が「/」で正しいのか確認されるのも良いかと思います。
@meeait5801
@meeait5801 3 жыл бұрын
@@nishimaki 返信ありがとうございます。遅くなってすみません、教わった通りに一度やってみます。わかりやすい動画をありがとうございます。
@user-ob9lg3rx2i
@user-ob9lg3rx2i 8 ай бұрын
クソ無知なんだけど、これ動画でも同じことできるのかな 手を振ってるor静止してる みたいな
@palimach
@palimach 3 жыл бұрын
x_train = np.array(x_train) / 255.0 y_train = np.array(y_train) x_test = np.array(x_test) / 255.0 y_test = np.array(y_test) を入力して実行するとAttributeError: 'numpy.ndarray' object has no attribute 'append'とエラーが出てしまいます その前の所まではエラー出ませんでした
@nishimaki
@nishimaki 3 жыл бұрын
ご視聴ありがとうございます。 申し訳ありませんが、その情報だけですと何とも言えない所でございます。 エラーメッセージは「append」を使用した際に発生しているので、その行か次の行あたりに何か不都合があるような気がします。 なので、まず、その4行の書く位置(for文の外側)は正しいか、変数名の大文字小文字などは正しいか、などご確認頂くのが良いかと思います。
@palimach
@palimach 3 жыл бұрын
返信ありがとうございます。 for文の外に出てなかったみたいです。ありがとうございます! ディープラーニングの解説、勉強になりました!
@hirohitonomin
@hirohitonomin Жыл бұрын
model.fit()を実行すると Epoch 1/10 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) in 1 model.compile(optimizer="adam",loss="categorical_crossentropy",metrics=["accuracy"]) 2 ----> 3 model.fit(x_train,y_train,epochs=10) 1 frames /usr/local/lib/python3.7/dist-packages/keras/engine/training.py in tf__train_function(iterator) 13 try: 14 do_return = True ---> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope) 16 except: 17 do_return = False ValueError: in user code: File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1051, in train_function * return step_function(self, iterator) File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1040, in step_function ** outputs = model.distribute_strategy.run(run_step, args=(data,)) ValueError: Shapes (None, 1) and (None, 3) are incompatible というエラーがでます。 よろしければ教えていただきたいです。 画像は自分で集めてきたものを使っています。
@nishimaki
@nishimaki Жыл бұрын
エラーを拝見しての予想ですが、モノクロ画像が混在していないですかね?
@kisiaaaaaa5973
@kisiaaaaaa5973 2 жыл бұрын
ニューラルネットワークの構築をしてその後学習を開始させようとして実行するとこのようなエラーが出て学習させることができなんのですが 改善する方法はありますか?;エラー::Traceback (most recent call last): File "C:\Users\h_abe\OneDrive\デスクトップ\ディープラーニング\test1.py", line 41, in model.fit(X_train,Y_train,epochs=10) File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\utils\traceback_utils.py", line 67, in error_handler raise e.with_traceback(filtered_tb) from None File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\eager\execute.py", line 59, in quick_execute inputs, attrs, num_outputs) tensorflow.python.framework.errors_impl.UnimplementedError: Cast string to float is not supported [[node Cast_1 (defined at C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\metrics.py:716) ]] [Op:__inference_train_function_779] Errors may have originated from an input operation. Input Source operations connected to node Cast_1: In[0] ExpandDims_1 (defined at C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\compile_utils.py:677) Operation defined at: (most recent call last) >>> File "", line 1, in >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\idlelib un.py", line 155, in main >>> ret = method(*args, **kwargs) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\idlelib un.py", line 548, in runcode >>> exec(code, self.locals) >>> >>> File "C:\Users\h_abe\OneDrive\デスクトップ\ディープラーニング\test1.py", line 41, in >>> model.fit(X_train,Y_train,epochs=10) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\utils\traceback_utils.py", line 64, in error_handler >>> return fn(*args, **kwargs) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\training.py", line 1216, in fit >>> tmp_logs = self.train_function(iterator) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\training.py", line 878, in train_function >>> return step_function(self, iterator) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\training.py", line 867, in step_function >>> outputs = model.distribute_strategy.run(run_step, args=(data,)) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\training.py", line 860, in run_step >>> outputs = model.train_step(data) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\training.py", line 817, in train_step >>> self.compiled_metrics.update_state(y, y_pred, sample_weight) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\compile_utils.py", line 460, in update_state >>> metric_obj.update_state(y_t, y_p, sample_weight=mask) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\utils\metrics_utils.py", line 73, in decorated >>> update_op = update_state_fn(*args, **kwargs) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\metrics.py", line 177, in update_state_fn >>> return ag_update_state(*args, **kwargs) >>> >>> File "C:\Users\h_abe\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\metrics.py", line 716, in update_state >>> y_true = tf.cast(y_true, self._dtype)Traceback (most recent call last): 長文失礼しました。すみません
@nishimaki
@nishimaki 2 жыл бұрын
申し訳ございませんが、エラーだけでは何とも言えない所でございます。 本動画と同じソースコードをお使いになりましたでしょうか?その場合は、作業されている環境の問題かもしれません。。。
@user-vy9hr1rf6c
@user-vy9hr1rf6c 2 жыл бұрын
とても説明わかりやすかったです! 一つ質問させていただきたいのですが、画像の準備でつまずいています。。 x_train = [] #訓練用のimage y_train = [] #訓練用のlabels  x_test = [] #テスト用のimage y_test = [] #テスト用のimage for f in glob.glob("image/*/*/*.jpg"): img_data = tf.io.read_file(f) img_data = tf.io.decode_jpeg(img_data) img_data = tf.image.resize(img_data,[100,100]) if f.split("/")[1] == "train": x_train.append(img_data) y_train.append(int(f.split("/")[2].split("_")[0])) elif f.split("/")[1] =="test": x_test.append(img_data) y_test.append(int(f.split("/")[2].split("_")[0])) x_train = np.array(x_train) / 255.0 y_train = np.array(y_train) x_test = np.array(x_test) / 255.0 y_train = np.array(x_test) 動画の通りにコードを書いて実行し、x_trainにデータが入っているか確認したところ、 array([], dtype=float64) このように入ってないように見受けられました。 フォルダ構成も確認しました。このコードと同じ階層にimageフォルダを作り、中にtrain, test, train, testそれぞれに0_hand, 1_footというフォルダを作りました。 どこか間違っている部分はございますでしょうか? ご教授いただければ幸いです。
@nishimaki
@nishimaki 2 жыл бұрын
ありがとうございます! 解決するか分かりませんが、画像データが読み込まれないということは、 for f in glob.glob("image/*/*/*.jpg") という正規表現の書き方が、お使いの環境と合っていない可能性があるかと思います。 例えば、画像の拡張子がjpgでないか、ディレクトリの区切り記号が「/」でないか、などお確かめ頂くのが良いかと思います。
@user-vy9hr1rf6c
@user-vy9hr1rf6c 2 жыл бұрын
@@nishimaki 返信ありがとうございます! ディレクトリの区切り記号が「/」ではなかったみたいです。 「/」ではなく「¥」なのですが、split関数にうまく入りません。 どうしたらいいでしょうか?
@nishimaki
@nishimaki 2 жыл бұрын
「¥」がsplit関数にうまく入らない、というのはどういった状況ですかね?半角の円マークが入力できないと言うことでしょうか?
@user-vy9hr1rf6c
@user-vy9hr1rf6c 2 жыл бұрын
@@nishimaki 「/」が入っていたところに「¥」を入れたんですが、その後ろの[1] == “train”:まで、カッコ内にあるような表記になってしまいます。
@nishimaki
@nishimaki 2 жыл бұрын
なるほど。「¥¥」と、2つ重ねてみたらいかがでしょう?
@azusayama-inu
@azusayama-inu 3 жыл бұрын
# tf.keras.layers.Dropout(0,2), を消したら動きました。
Pythonでよく見かける『if __name__ == ‘__main__‘』をわかりやすく解説
10:23
いまにゅのプログラミング塾
Рет қаралды 50 М.
❌Разве такое возможно? #story
01:00
Кэри Найс
Рет қаралды 3,6 МЛН
Please Help Barry Choose His Real Son
00:23
Garri Creative
Рет қаралды 23 МЛН
【Pythonプログラミング】NumPyの基本 〜 Pythonで科学計算や機械学習を扱う人必見!〜
27:34
【Python×AI超入門講座】画像認識を体験しよう!【初心者向け】
46:08
セイト先生のWeb・ITエンジニア転職ラボ
Рет қаралды 95 М.
データ分析初心者のためのPythonオススメ勉強法
7:42
サトシのデータ分析部屋
Рет қаралды 13 М.
絶対に理解させる誤差逆伝播法【深層学習】
50:14
予備校のノリで学ぶ「大学の数学・物理」
Рет қаралды 189 М.
自社で完結!外観検査AI装置の作り方① 1万円から始める外観検査
16:17
神戸デジタル・ラボ KDL
Рет қаралды 26 М.
【30分で習得】PythonでOCR(光学文字認識)の実装をわかりやすく解説
29:09
いまにゅのプログラミング塾
Рет қаралды 61 М.
❌Разве такое возможно? #story
01:00
Кэри Найс
Рет қаралды 3,6 МЛН