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

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

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

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

機械学習

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

Python

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

解決済

cannot unpack non-iterable Sequential objectを解決したい

K2ohei
K2ohei

総合スコア2

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

機械学習

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

Python

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

2回答

0評価

0クリップ

490閲覧

投稿2022/01/07 02:20

前提・実現したいこと

Pythonにて鋳物の画像を用いた画像判別機を作ろうとしています。
model.fitの場面に以下のエラーメッセージが発生しました。
解決方法を探っています。
お判りになる方いらっしゃいましたら、
メッセージ頂けると幸いです。

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

TypeError Traceback (most recent call last) <ipython-input-16-27f12ae95326> in <module> 22 return predictions, history 23 ---> 24 predictions, history = OKDEF() TypeError: cannot unpack non-iterable Sequential object

該当のソースコード

Python

import os, cv2, random import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib import ticker import seaborn as sns %matplotlib inline import tensorflow from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Input, Dropout, Flatten, Convolution2D, MaxPooling2D, Dense, Activation from tensorflow.keras.optimizers import RMSprop from tensorflow.keras.callbacks import ModelCheckpoint, Callback, EarlyStopping import np_utils TRAIN_DIR = './archive/casting_data/casting_data/train/' TEST_DIR = './archive/casting_data/casting_data/test/' ROWS = 64 COLS = 64 CHANNELS = 3 train_images = [TRAIN_DIR+i for i in os.listdir(TRAIN_DIR)] # use this for full dataset train_ok = [TRAIN_DIR+i for i in os.listdir(TRAIN_DIR) if 'cast_ok' in i] train_def = [TRAIN_DIR+i for i in os.listdir(TRAIN_DIR) if 'cast_def' in i] test_images = [TEST_DIR+i for i in os.listdir(TEST_DIR)] # slice datasets for memory efficiency on Kaggle Kernels, delete if using full dataset train_images = train_ok + train_def random.shuffle(train_images) test_images = test_images def read_image(file_path): img = cv2.imread(file_path, cv2.IMREAD_COLOR) #cv2.IMREAD_GRAYSCALE return cv2.resize(img, (ROWS, COLS), interpolation=cv2.INTER_CUBIC) def prep_data(images): count = len(images) data = np.ndarray((count, CHANNELS, ROWS, COLS), dtype=np.uint8) for i, image_file in enumerate(images): image = read_image(image_file) data[i] = image.T #transpose mxn > nxm if i%250 == 0: print('Processed {} of {}'.format(i, count)) return data train = prep_data(train_images) test = prep_data(test_images) print("Train shape: {}".format(train.shape)) print("Test shape: {}".format(test.shape)) labels = [] for i in train_images: if 'cast_ok_' in i: labels.append(1) else: labels.append(0) sns.countplot(labels) plt.title('OK and def') labels = np.array(labels) DEF_avg = np.array([DEF[0].T for i, DEF in enumerate(train) if labels[i]==1]).mean(axis=0) plt.imshow(DEF_avg) plt.title('Average DEF') OK_avg = np.array([OK[0].T for i, OK in enumerate(train) if labels[i]==0]).mean(axis=0) plt.imshow(OK_avg) plt.title('Average OK') optimizer = RMSprop(lr=1e-4) objective = 'binary_crossentropy' def OKDEF(): model = Sequential() model.add(Convolution2D(32, (3, 3), input_shape=(3, ROWS, COLS), activation='relu', padding="same")) model.add(Convolution2D(32, (3, 3), activation='relu', padding="same")) model.add(MaxPooling2D(data_format="channels_first", pool_size=(2, 2))) model.add(Convolution2D(64, (3, 3), activation='relu', padding="same")) model.add(Convolution2D(64, (3, 3), activation='relu', padding="same")) model.add(MaxPooling2D(data_format="channels_first", pool_size=(2, 2))) model.add(Convolution2D(128, (3, 3), activation='relu', padding="same")) model.add(Convolution2D(128, (3, 3), activation='relu', padding="same")) model.add(MaxPooling2D(data_format="channels_first", pool_size=(2, 2))) model.add(Convolution2D(256, (3, 3), activation='relu', padding="same")) model.add(Convolution2D(256, (3, 3), activation='relu', padding="same")) model.add(MaxPooling2D(data_format="channels_first", pool_size=(2, 2))) model.add(Flatten()) model.add(Dense(256, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(256, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(1)) model.add(Activation('sigmoid')) model.compile(loss=objective, optimizer=optimizer, metrics=['accuracy']) return model model = OKDEF() train = tensorflow.transpose(train, [0, 2, 3, 1]) test = tensorflow.transpose(test,[0, 2, 3, 1]) epochs = 10 batch_size = 16 class LossHistory(Callback): def on_train_begin(self, logs={}): self.losses = [] self.val_losses = [] def on_epoch_end(self, batch, logs={}): self.losses.append(logs.get('loss')) self.val_losses.append(logs.get('val_loss')) early_stopping = EarlyStopping(monitor='val_loss', patience=3, verbose=1, mode='auto') def run_OKDEF(): history = LossHistory() model.fit(train, labels, batch_size=batch_size, epochs=epochs, validation_split=0.25, verbose=0, shuffle=True, callbacks=[history, early_stopping]) predictions = model.predict(test, verbose=0) return predictions, history predictions, history = OKDEF()

試したこと

NHWCへの変換
errorでの検索

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

Python 3.8.8
TensorFlow 2.3.0

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

機械学習

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

Python

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