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

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

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

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

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

受付中

Pythonのmodel.compileでTypeError:Nonetypeが起きました。

sign_language
sign_language

総合スコア0

Keras

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

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0回答

0評価

0クリップ

863閲覧

投稿2019/10/21 07:37

前提・実現したいこと

Pythonで画像認識を用いてじゃんけんの手の形を判別するシステムをあるサイトで見つけて
サイトの通りに実行したところエラーが発生しました
■■な機能を実装中に以下のエラーメッセージが発生しました。

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

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-24-6c44726a183e> in <module>() ----> 1 model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['acc']) C:\Anaconda3\envs\Sotsuken\lib\site-packages\keras\engine\training.py in compile(self, optimizer, loss, metrics, loss_weights, sample_weight_mode, weighted_metrics, target_tensors, **kwargs) 227 # loss_weight_2 * output_2_loss_fn(...) + 228 # layer losses. --> 229 self.total_loss = self._prepare_total_loss(masks) 230 231 # Functions for train, test and predict will C:\Anaconda3\envs\Sotsuken\lib\site-packages\keras\engine\training.py in _prepare_total_loss(self, masks) 690 691 output_loss = loss_fn( --> 692 y_true, y_pred, sample_weight=sample_weight) 693 694 if len(self.outputs) > 1: C:\Anaconda3\envs\Sotsuken\lib\site-packages\keras\losses.py in __call__(self, y_true, y_pred, sample_weight) 71 losses = self.call(y_true, y_pred) 72 return losses_utils.compute_weighted_loss( ---> 73 losses, sample_weight, reduction=self.reduction) 74 75 @classmethod C:\Anaconda3\envs\Sotsuken\lib\site-packages\keras\utils\losses_utils.py in compute_weighted_loss(losses, sample_weight, reduction, name) 164 # Update dimensions of `sample_weight` to match with `losses` if possible. 165 losses, _, sample_weight = squeeze_or_expand_dimensions( --> 166 losses, None, sample_weight) 167 168 # Broadcast weights if possible. C:\Anaconda3\envs\Sotsuken\lib\site-packages\keras\utils\losses_utils.py in squeeze_or_expand_dimensions(y_pred, y_true, sample_weight) 74 if y_pred_rank == 0 and weights_rank == 1: 75 y_pred = K.expand_dims(y_pred, -1) ---> 76 elif weights_rank - y_pred_rank == 1: 77 sample_weight = K.squeeze(sample_weight, -1) 78 elif y_pred_rank - weights_rank == 1: TypeError: unsupported operand type(s) for -: 'int' and 'NoneType'

該当のソースコード

Python

import keras from keras import layers from keras import models from keras import optimizers from keras.preprocessing.image import ImageDataGenerator import matplotlib.pyplot as plt import tensorflowjs as tfjs model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(100, 100, 3))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(128, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(128, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Flatten()) model.add(layers.Dropout(0.5)) model.add(layers.Dense(512, activation='relu')) model.add(layers.Dense(10, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['acc']) classes = ['zero', 'one', 'two', 'three', 'four', 'five', 'seven', 'eight', 'nine'] train_dir = 'hand_sign_digit_data/train' validation_dir = 'hand_sign_digit_data/validation' train_datagen = ImageDataGenerator( rescale=1./255, rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True,) test_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory( train_dir, target_size=(100, 100), batch_size=32, class_mode='categorical') validation_generator = test_datagen.flow_from_directory( validation_dir, target_size=(100, 100), batch_size=32, class_mode='categorical') history = model.fit_generator( train_generator, steps_per_epoch=100, epochs=100, validation_data=validation_generator, validation_steps=10) model.save('sign_language_vgg16_1.h5') #convert the vgg16 model into tf.js model save_path = '../nodejs/static/sign_language_vgg16' tfjs.converters.save_keras_model(model, save_path) print("[INFO] saved tf.js vgg16 model to disk..") acc = history.history['acc'] val_acc = history.history['val_acc'] loss = history.history['loss'] val_loss = history.history['val_loss'] epochs = range(len(acc)) plt.plot(epochs, acc, 'bo', label='Training acc') plt.plot(epochs, val_acc, 'b', label='Validation acc') plt.title('Training and validation accuracy') plt.legend() plt.figure() plt.plot(epochs, loss, 'bo', label='Training loss') plt.plot(epochs, val_loss, 'b', label='Validation loss') plt.title('Training and validation loss') plt.legend() plt.show()

試したこと

ネット検索で1時間ほど調べたりしましたが、該当するサイトは見つからず、そのステップの前の指の本数を判別するシステムを動かしてみたところ、実行できました。

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

こちらが参考にしたサイトですが、そのまま動かそうとしてもmodel.compileでエラーが発生します。
https://book.mynavi.jp/manatee/detail/id=99768

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Keras

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

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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