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

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

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

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

1回答

3289閲覧

転移学習した後のモデルで、特定の画像を予測するには?(TensorFlow)②

51sep

総合スコア22

Keras

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/02/19 19:20

編集2020/02/28 05:50

転移学習した後のモデルで、特定の画像を予測するには?(TensorFlow)
で質問した者です。恥ずかしながら、また分からなくなってしまい、質問させて頂きました。
公式サイト「Transfer learning with a pretrained ConvNet」を実装確認したところです。
こちらのサイトを使って、未知の画像を予測してみたいのですが方法が分かりません。出力して確認したいのは、以下の4点です。

・予測する画像の表示
・予測した確率
・予測ラベル
・正解ラベル(画像のラベル)

予測しようと思って書いみたプログラムは以下(全文)です。
最後に#case1, #case2と書いた「predict」のところです。 arrayがうまいこと配列になっていない?気がしています。(当然、np.argmaxも)
上記4点がうまいこと確認できません。勉強不足でお恥ずかしい限りです。ですが、頑張りたいと思います。
基本的なことで申し訳ないですが、どなたかアドバイスをお願いしてもよろしいでしょうか。

import os import keras from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequential, Model from keras.layers import Input, Dense, Dropout, Activation, Flatten,MaxPooling2D,Conv2D from keras import optimizers import tensorflow as tf import numpy as np from keras.preprocessing.image import load_img, img_to_array from keras.applications.vgg16 import preprocess_input # 分類クラス classes = ['cat1','cat2','cat3'] nb_classes = len(classes) batch_size_for_data_generator = 20 base_dir = "XXX" train_dir = os.path.join(base_dir, 'train') validation_dir = os.path.join(base_dir, 'validation') test_dir = os.path.join(base_dir, 'test') train_1_dir = os.path.join(train_dir, '1') train_2_dir = os.path.join(train_dir, '2') train_3_dir = os.path.join(train_dir, '3') validation_1_dir = os.path.join(validation_dir, '1') validation_2_dir = os.path.join(validation_dir, '2') validation_3_dir = os.path.join(validation_dir, '3') test_1_dir = os.path.join(test_dir, '1') test_2_dir = os.path.join(test_dir, '2') test_3_dir = os.path.join(test_dir, '3') # 画像サイズ img_rows, img_cols = 200, 200 train_datagen = ImageDataGenerator(rescale=1.0 / 255,shear_range=0.2,zoom_range=0.2,horizontal_flip=True) train_generator = train_datagen.flow_from_directory(directory=train_dir,target_size=(img_rows, img_cols),color_mode='rgb',batch_size=batch_size_for_data_generator,shuffle=True) test_datagen = ImageDataGenerator(rescale=1.0 / 255) validation_generator = test_datagen.flow_from_directory(directory=validation_dir,target_size=(img_rows, img_cols),color_mode='rgb',batch_size=batch_size_for_data_generator,shuffle=True) IMG_SHAPE = (224, 224, 3) base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE, include_top=False, weights='imagenet') base_model.trainable = False maxpool_layer = tf.keras.layers.GlobalMaxPooling2D() prediction_layer = tf.keras.layers.Dense(1) learning_rate = 0.0001 model = tf.keras.Sequential([ base_model, maxpool_layer, prediction_layer ]) base_learning_rate = 0.0001 model.compile(optimizer=tf.keras.optimizers.RMSprop(lr=base_learning_rate), loss=tf.keras.losses.BinaryCrossentropy(from_logits=True), metrics=['accuracy']) model.summary() initial_epochs = 10 validation_steps=20 loss0,accuracy0 = model.evaluate(validation_generator, steps = validation_steps) history = model.fit(train_generator, epochs=initial_epochs, validation_data=validation_generator) base_model.trainable = True for layer in base_model.layers[:100]: layer.trainable = False print("Number of layers in the base model: ", len(base_model.layers)) model.compile(loss=tf.keras.losses.BinaryCrossentropy(from_logits=True), optimizer = tf.keras.optimizers.RMSprop(lr=base_learning_rate/10), metrics=['accuracy']) model.summary() fine_tune_epochs = 10 total_epochs = initial_epochs + fine_tune_epochs history_fine = model.fit(train_generator, epochs=total_epochs, initial_epoch = history.epoch[-1], validation_data=validation_generator) #case1 filename = os.path.join('XXX/', 'XXX.png') filename img = load_img(filename, target_size=(224, 224)) x = img_to_array(img) x = np.expand_dims(x, axis=0) predict = model.predict(preprocess_input(x)) predict #array([[4.345547]], dtype=float32) #case2 print(model.predict(validation_generator)[0]) #[-2.2691705]

使用した画像のサンプル使用した画像のサンプル

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

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

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

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

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

Q71

2020/02/19 22:29

コードの断片を載せられても。。。 転移学習がしたいのでしょうか?それとも、分類の最初の一歩を確認中なのでしょうか? あなたが何をしたくて、今何をしているのかわかりません。 > 最終的には、画像分類をしたいと思っています。(例えば「3」の数字が何であるか予測するような) TensorFlow公式のMobileNetV2を使用したサイトTransfer learning with a pretrained ConvNetでは、モデルを評価したところで説明は終了?していました。 何故こうなるのでしょう?「はじめての〜」に、予測しているコードがありますよね。画像を入れ替えるだけ、それも「ファッションMNISTは数字のMNISTとフォーマットは同じ」と書いてあるのだから、MNISTのサイトからデータをダウンロードして置き換えるだけで目的は達成できたはずです。
tabuu

2020/02/20 03:40

タイトルに「転移学習した後のモデルで、特定の画像を予測するには?」とあります。 状況が良く分かりませんが、こういうことですか? ・第三者が作成した予測モデルが存在する(これを[1]とする) ・質問者さんが[1]をベースに自作の画像を使って転移学習モデルを作成した(これを[2]とする) ・質問者さんが[2]を使って未知の画像の予測をしたいが、やり方が分からない
51sep

2020/02/20 06:19

質問内容が分かりずらくて、申し訳ございませんでした。 tabuuさんのご説明の通りです。 「未知の画像の予測をしたいが、やり方が分からない」です。 画像の入れ替えの件は、この際、不要な説明でした。勉強不足で、すみませんでした。 「公式サイトのもので未知の画像を予測したいが、やり方が分からない」でよいと思われます。
tabuu

2020/02/20 07:42

求めているレベル感が分かりませんが、転移学習を実施することによって正答率がどのように変わるかを試してみたいということであれば以下のページの方が分かり易いと思います。 https://qiita.com/windows222/items/c7084b1ad0d51971d2b7
Q71

2020/02/20 08:52

前の質問には「ThesorFlow、機械学習の初学者です。」と書かれています。転移学習ができるほど、学習が済んでいるのですか。それなら、任意の画像を推測させることもできているのではないですか。 一歩ずつ、確実に進みましょう。おそらく、機械学習とプログラミング、Pythonコードの3つを同時に進めようとされていると思います。だからこそ余計に、一歩を小さく確実に進めなければなりません。 試したこと、やったこと、できたことを整理してください。
51sep

2020/02/21 23:21

tabuuさん、情報をありがとうございました。 恥ずかしながら私は低レベルです。。頑張ります。 Q71さん、コメントをありがとうございました。 お言葉ごもっともです。転移学習ができるほど、学習は済んでいませんし、機械学習とプログラミングを同時に学ぶ状況にいます。最初の質問で解決すべきでしたが、力不足でした。前の回答者さんも呆れていることでしょう。でも、頑張ります。
guest

回答1

0

はじめてのニューラルネットワーク:分類問題の初歩

モデルの訓練が終わったら、そのモデルを使って画像の分類予測を行うことが出来ます。

にあるコード

predictions = model.predict(test_images)

をして、このpredictionsを見たら、という話でしょうか。
あなたぼ横にいる人には、ここに書いてあることで答えが返ってくるかもしれません。あなたが喋らなくてもあなたの手元にあるコードを覗き込めるのですから。
ネットワークの向こうにいる人にそれはできないので、あなたがしたことを1から、10とまでは言わないけれど、8くらいは書いてもらえないとわかりません。

さて、以前の質問も含めて、いろいろ変更されていると思います。変更点を洗い出して下さい。
チュートリアルは、複数の画像を一度に推論していますが、あなたはそれを単一の画像を推論できるように変更しているのではないですか?そうであれば、自分が何をどう変えたのかよく考えて下さい。


参考にされたTransfer learning with a pretrained ConvNetには、こう書かれています。

In this tutorial, you will learn how to classify images of cats and dogs by using transfer learning from a pre-trained network.

「犬と猫を分類する」と。これは、2クラス分類です。以前の質問で参考にされたはじめてのニューラルネットワーク:分類問題の初歩は、ファッションMNISTで、こちらは10クラス分類です。分類するクラス数はいくつでも良いのですが、2クラスの時だけ、注意が必要です。
犬と猫に分類します。与えられる画像は、馬が混ざっていても良いのですが、モデルは犬と猫しか知らないので、馬であっても犬か猫、どちらか似ている方へ分類します。ここで、「犬である確率は60%」と推論したとしましょう。では、猫である確率は、いくらですか。それを、どうやって計算しますか。もちろん、100-60=40で、猫である確率は40%です。ですから、2クラス分類に限り、最終層の出力がクラス数ではなく、1でもかまわないのです。
あなたは、何クラスの分類をしたいのでしょうか。そのクラスに合わせた出力をして下さい。
また、最終層の出力をsoftmax関数にかけることをお忘れ無く。

ということで、自分が何をしたいのか、参考にしているページが何をしようとしているのか、しっかり抑えて下さい。


畳み込みネットワークを使った分類は、畳み込み層で特徴を抽出し、パーセプトロン層で分類します。
転移学習は、畳み込み層(の係数)は学習せず、パーセプトロン(の係数)を作り替えます。よって、畳み込み層で特徴抽出ができなければ、転移学習は成功しません。
今回、元のネットワークは「カラーの犬と猫」で、転移で学習しようとしたのは「グレースケールの数字」です。そうすると、特徴が全く異なるので、「グレースケールの数字」を分類するために必要な特徴が抽出できないことが考えられます。

投稿2020/02/20 21:47

編集2020/03/06 22:41
Q71

総合スコア995

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

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

51sep

2020/02/21 23:53 編集

コメントをありがとうございました。 あれから少し試してみまして、別のモデルで以下はうまくいきました。 img = load_img(filename, target_size=(xxx,xxx)) x = img_to_array(img) x = np.expand_dims(x, axis=0) predict = model.predict(preprocess_input(x)) predict #array([[0., 0., 1.]], dtype=float32) 安易な考えですが、それを公式のプログラムで同じプログラムを試してみると、 以下のようになってしまいます。(数値の配列がうまくできていない?) #array([[5.241021]], dtype=float32) もちろん、同じプログラムで同じようにうまく結果を返すとは思っていませんが、力不足でまだ解決できていません。
Q71

2020/02/22 08:39

だから、あなたの隣にいるなら、あなたの手元を覗き込んだり、ひとつひとつ聞くこともできます。電線の向こうにいるのでそれはできません。ひとつひとつ聞いていては、やりとりに時間がかかります。 何を見て、どう考え、何を、どうしたのか、まとめて下さい。遠回りなようで、こういう場で聞くには一番近道です。 20年近くこういう場で回答している経験です。 以前の書き込みではpredict[5]を表示していました。今回はpredict ですか?コードが変わっていることが推測されます。勝手に補完できないので、全部提示して下さい。
51sep

2020/02/24 00:39 編集

何度もすみません。ご指摘をありがとうございます。 2020/02/24コメント編集:本文にプログラムを載せました。
Q71

2020/02/23 09:28

入力してお分かりになったと思いますが、コメントではコードが整形されません。Pythonはインデントが意味を持ちますので、本文を編集して下さい。
Q71

2020/02/23 11:53

> prediction_layer = tf.keras.layers.Dense(1) この行によって、どうなりますか。 あるいは、この行は、元々こうでしたか?なぜ、このように変えたのでしょうか。
Q71

2020/02/24 05:52

これ、英語の問題。そのページの1行目、ちゃんと読んで日本語にしてここに書いてみて下さい。 一旦答えを書きましたが、「ちゃんと読む」という癖をつけて欲しいので、消します(編集じゃなく、投稿前に書き換えた)。「全文読む」ことはしなくても、そのページの概要がつかめるところは読みましょう。
51sep

2020/02/24 07:32

そのページの1行目とは以下?でしょうか。 Apply a tf.keras.layers.Dense layer to convert these features into a single prediction per image. 「tf.keras.layers.Dense layer」は1画像につき1つの予測を返します。 な感じでしょうか。
51sep

2020/02/25 00:09

このチュートリアルで、訓練済みネットワークから転移学習を使って猫と犬の画像を分類する方法を学びます。
51sep

2020/02/26 19:03 編集

Q71さん、追加のご回答をありがとうございました。大変勉強になりました。 以下に修正して、実行してみました。(他は修正なし) prediction_layer = tf.keras.layers.Dense(3,activation='softmax') 結果は、以下になりました。でも、どれを試しても全部”1つめ”の確率が高くなってしまいます。 (他の部分も修正する必要がある?のでしょうか) #array([[9.9988329e-01, 1.1667432e-04, 5.0499985e-08]], dtype=float32) まだこの質問にお付き合いしてくださっていたら、また呆れられると思いますが、 お気づきの点がありましたらご指摘いただければと思います。
Q71

2020/02/27 01:43

もちろん、他にもあります。 猫と犬で、「猫は0、犬は1」と決めたら、学習用の答えは「0又は1」です。では、「猫と犬と馬」なら、どのような答えが必要でしょうか。ファッションMNISTでは、どのような答えを用意していたでしょうか。
Q71

2020/02/27 01:56

上は取り消し。kerasのModel.fitは、One Hot Vectorにしなくていいんですね。 では、学習中のaccuracyは、どうなっていますか?
51sep

2020/02/27 04:04

コメントをありがとうございました。 結果は以下のとおりです。 何かお気づきの点がありましたら、ご指摘をお願いいたします。 Found 30 images belonging to 3 classes. Found 30 images belonging to 3 classes. Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= mobilenetv2_1.00_224 (Model) (None, 7, 7, 1280) 2257984 _________________________________________________________________ global_max_pooling2d (Global (None, 1280) 0 _________________________________________________________________ dense (Dense) (None, 3) 3843 ================================================================= Total params: 2,261,827 Trainable params: 3,843 Non-trainable params: 2,257,984 _________________________________________________________________ 2/20 [==>...........................] - ETA: 28s - loss: 0.7918 - accuracy: 0.5111WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 20 batches). You may need to use the repeat() function when building your dataset. 2/20 [==>...........................] - ETA: 29s - loss: 0.7918 - accuracy: 0.5111Train for 2 steps, validate for 2 steps Epoch 1/10 2/2 [==============================] - 15s 7s/step - loss: 0.7635 - accuracy: 0.6000 - val_loss: 0.7896 - val_accuracy: 0.5111 Epoch 2/10 2/2 [==============================] - 9s 4s/step - loss: 0.7653 - accuracy: 0.5889 - val_loss: 0.7849 - val_accuracy: 0.5333 Epoch 3/10 2/2 [==============================] - 10s 5s/step - loss: 0.7385 - accuracy: 0.6556 - val_loss: 0.7923 - val_accuracy: 0.5000 Epoch 4/10 2/2 [==============================] - 12s 6s/step - loss: 0.7501 - accuracy: 0.6444 - val_loss: 0.7903 - val_accuracy: 0.5111 Epoch 5/10 2/2 [==============================] - 12s 6s/step - loss: 0.7576 - accuracy: 0.6000 - val_loss: 0.7925 - val_accuracy: 0.5111 Epoch 6/10 2/2 [==============================] - 9s 4s/step - loss: 0.6898 - accuracy: 0.8000 - val_loss: 0.7928 - val_accuracy: 0.5000 Epoch 7/10 2/2 [==============================] - 9s 4s/step - loss: 0.7405 - accuracy: 0.6222 - val_loss: 0.7950 - val_accuracy: 0.4889 Epoch 8/10 2/2 [==============================] - 9s 5s/step - loss: 0.7132 - accuracy: 0.7333 - val_loss: 0.7946 - val_accuracy: 0.4889 Epoch 9/10 2/2 [==============================] - 9s 5s/step - loss: 0.7090 - accuracy: 0.6889 - val_loss: 0.7941 - val_accuracy: 0.4889 Epoch 10/10 2/2 [==============================] - 8s 4s/step - loss: 0.6955 - accuracy: 0.7556 - val_loss: 0.7941 - val_accuracy: 0.4889 Number of layers in the base model: 155 Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= mobilenetv2_1.00_224 (Model) (None, 7, 7, 1280) 2257984 _________________________________________________________________ global_max_pooling2d (Global (None, 1280) 0 _________________________________________________________________ dense (Dense) (None, 3) 3843 ================================================================= Total params: 2,261,827 Trainable params: 1,866,435 Non-trainable params: 395,392 _________________________________________________________________ Train for 2 steps, validate for 2 steps Epoch 10/20 2/2 [==============================] - 20s 10s/step - loss: 0.7603 - accuracy: 0.6111 - val_loss: 0.7847 - val_accuracy: 0.5222 Epoch 11/20 2/2 [==============================] - 12s 6s/step - loss: 0.7097 - accuracy: 0.6889 - val_loss: 0.7803 - val_accuracy: 0.5333 Epoch 12/20 2/2 [==============================] - 9s 5s/step - loss: 0.7235 - accuracy: 0.6778 - val_loss: 0.7768 - val_accuracy: 0.5333 Epoch 13/20 2/2 [==============================] - 9s 5s/step - loss: 0.7093 - accuracy: 0.7000 - val_loss: 0.7743 - val_accuracy: 0.5444 Epoch 14/20 2/2 [==============================] - 11s 6s/step - loss: 0.7066 - accuracy: 0.7111 - val_loss: 0.7713 - val_accuracy: 0.5556 Epoch 15/20 2/2 [==============================] - 10s 5s/step - loss: 0.6885 - accuracy: 0.7222 - val_loss: 0.7697 - val_accuracy: 0.5778 Epoch 16/20 2/2 [==============================] - 10s 5s/step - loss: 0.6940 - accuracy: 0.7333 - val_loss: 0.7681 - val_accuracy: 0.5778 Epoch 17/20 2/2 [==============================] - 10s 5s/step - loss: 0.6693 - accuracy: 0.8111 - val_loss: 0.7666 - val_accuracy: 0.5778 Epoch 18/20 2/2 [==============================] - 9s 5s/step - loss: 0.6924 - accuracy: 0.7333 - val_loss: 0.7670 - val_accuracy: 0.5778 Epoch 19/20 2/2 [==============================] - 10s 5s/step - loss: 0.7013 - accuracy: 0.7111 - val_loss: 0.7647 - val_accuracy: 0.5778 Epoch 20/20 2/2 [==============================] - 10s 5s/step - loss: 0.6542 - accuracy: 0.8111 - val_loss: 0.7627 - val_accuracy: 0.6000
Q71

2020/02/28 03:58

lossが高いので、学習できてないですね。なぜ、は、データも見ないと話はできません。
51sep

2020/02/28 05:44

おっしゃる通りだと思いました。すみません、最初の方にWarningが出ていたのに気づきませんでした。Warning内容を調べてみます。理解できるかわかりませんが。。 2/20 [==>...........................] - ETA: 28s - loss: 0.7918 - accuracy: 0.5111WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 20 batches). You may need to use the repeat() function when building your dataset
51sep

2020/02/28 23:12

進捗報告しておきます。 あれから、上記のWarningは解消できました。 しかしながら、accuracyは低いままで予測もひどい。依然として「ちゃんと学習」ができているのか疑問が残ります。 そもそも例数も少ないので、何とも言えませんが、他のプログラムでは同じ画像で高い正確度を出しているので、やはり、今回はうまくいっていないのかなと思ってしまいます。 正確度を上げる問題は、また勉強が必要そうです。
51sep

2020/03/17 19:23

Q71さん、回答の更新をどうもありがとうございました。 進捗報告しておきます。 あれから、予測の仕方はだいぶ分かってきました。 次のステップとして、accuracyの改善を考えていました。 モデルを間違えていたので、そこを修正したところaccuracyはあがりましたが、 ちゃんと学習できているかわかりませんでした。 とりあえず、2値に戻って確認しようと思いまして、画像データを「1」「3」としました。 モデルは公式のものに戻しまして、実行したところ、以下のようにlossもaccuracyも変わらず。 学習率を変えても改善せず。。 やはり、Q71さんのご指摘の通り「特徴が全く異なるので、「グレースケールの数字」を分類するために必要な特徴が抽出できないことが考えられます。」なのかもしれません。 そうである場合、次のアプローチはどのようにしたらよいのでしょうか。 もしまだこの質問が生きていたら、ご助言をいただけると嬉しく思います。 Epoch 1/10 2/2 [==============================] - 9s 5s/step - loss: 7.6666 - accuracy: 0.5000 - val_loss: 7.6666 - val_accuracy: 0.5000 Epoch 2/10 2/2 [==============================] - 6s 3s/step - loss: 7.6666 - accuracy: 0.5000 - val_loss: 7.6666 - val_accuracy: 0.5000 省略 Epoch 9/10 2/2 [==============================] - 7s 3s/step - loss: 7.6666 - accuracy: 0.5000 - val_loss: 7.6666 - val_accuracy: 0.5000 Epoch 10/10 2/2 [==============================] - 6s 3s/step - loss: 7.6666 - accuracy: 0.5000 - val_loss: 7.6666 - val_accuracy: 0.5000
Q71

2020/03/19 22:47

エポックが進んでも、acc、loss共に変化していないので、まったく学習できていません。 まず、参考サイトそのままのコードは動作したでしょうか。まずは真似ましょう。守 それから、データを、元の主旨に沿ったまま、つまり犬猫なら自分で探してきた犬猫に変えてみましょう。破 その後、自分の目的に沿ったものに変えていきます。離
51sep

2020/08/24 19:34

進捗報告。しばらく時間がなくて、確認できていませんでした。 公式サイトが更新された?ようだったので、改めて実装したら、Tensorflowが回らなくなりました。とりあえず、以前のプログラムが実行できるところまで回復しましたが、結局、更新された?公式サイトの実装には至っていません。 3/20の時点(以前のプログラム)でaccuracyが上がっていなかったので、ご助言の通り、うまく学習していないと思われました。転移学習することで、accuracyが上がるところを確認したかったですが、その特徴量の抽出?がうまくできていないようです。どうすればいいのか。。 一方、別の公式サイト(Image classification)は実装できて、自作画像においてもそこそこの正確度が出ました(出たと思います)。転移学習しなくても充分なのか、と思いつつ、一応、転移学習を確認したくて、また見ている最中です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問