🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

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

Python

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

Q&A

1回答

728閲覧

CNNで画像分類を実装したいです

退会済みユーザー

退会済みユーザー

総合スコア0

Keras

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/12/21 13:33

rawファイルから画像を読み込み,画像分類をCNNで実装したいです.

画像群は脊椎のもので,健常か否かを識別したいです.
RuntimeErrorが発生しています.

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

<_io.BufferedReader name='./case2.raw'>

RuntimeError Traceback (most recent call last)
<ipython-input-14-cf12a435979a> in <module>
73
74 #学習の実行
---> 75 history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=verbose, validation_data=(x_test, y_test))
76
77 #モデルの評価

~\Anaconda3\lib\site-packages\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, **kwargs)
950 sample_weight=sample_weight,
951 class_weight=class_weight,
--> 952 batch_size=batch_size)
953 # Prepare validation data.
954 do_validation = False

~\Anaconda3\lib\site-packages\keras\engine\training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size)
679 if y is not None:
680 if not self.optimizer:
--> 681 raise RuntimeError('You must compile a model before '
682 'training/testing. '
683 'Use model.compile(optimizer, loss).')

RuntimeError: You must compile a model before training/testing. Use model.compile(optimizer, loss).

実行したソースコード

#ライブラリのインポート
import keras
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Dense, Dropout, Flatten
from keras.optimizers import Adam
import time

coding:utf-8

encoding = "utf-8"

import keras
from keras.utils import np_utils
from keras.layers.convolutional import Conv2D, MaxPooling2D
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation, Flatten
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

import numpy as np

必要なモジュールをインポート

from keras.applications.vgg16 import VGG16, decode_predictions,preprocess_input
from keras.preprocessing import image
from PIL import Image
import numpy as np
import urllib.request as urllib

手元の環境で実行させたい場合は下記2つも読み込んでください。

import tensorflow

import keras

import SimpleITK as sitk

"""
filename: 判定したい画像ファイル
size: 予測した結果を何件まで表示させたいか(初期値10件)
"""
def predict(filename, size=5):

filename = "./case1.raw" # 入力画像をWebから取得 img = image.load_img(filename, target_size=(512, 512)) # 画像を読み込み x = image.img_to_array(img) # 画像ファイルを数値に変換 y = np.expand_dims(x, axis=0) # 次元を増やす pred = model.predict(preprocess_input(x)) # 一律に平均値を引いている処理 results = decode_predictions(pred, top=size)[0] # VGG16の1000クラスはdecode_predictions()で文字列に変換 return results

fd = open("./case2.raw", 'rb')
height = 512
width = 512
f = np.fromfile(fd, dtype=np.float64, count=height*width)
img = f.reshape((height,width))
print(fd)

(x_train, y_train), (x_test, y_test) = ('rb'), ('rb')
x_train = f.reshape(65536,-1)
x_test = f.reshape(65536, -1)
x_train = x_train.reshape(x_train.shape[0], -1)
x_test = x_test.reshape(x_test.shape[0], -1)
x_train = x_train.astype('float32')/256
x_test = x_test.astype('float32')/256

epochs = 10
batch_size = 512
verbose = 1

model = Sequential()

#学習の実行
history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=verbose, validation_data=(x_test, y_test))

#モデルの評価
score = model.evaluate(x_test, y_test)

試したこと

UTF-8にする記述を付け加えました.

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

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

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

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

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

jbpb0

2020/12/21 13:36

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください
退会済みユーザー

退会済みユーザー

2020/12/21 13:45

File "<ipython-input-15-96bf2ffe417b>", line 1 ```python ^ SyntaxError: invalid syntax 最初と最後の行に追加したら上記のようなエラーが出ました. どうすればいいでしょうか?
jbpb0

2020/12/21 13:49 編集

ここの質問にpythonコードを書く時の書き方の話です ```python と ``` で挟んでください
退会済みユーザー

退会済みユーザー

2020/12/21 14:01

質問は編集しておきました.ありがとうございます. model.compile()の中は何を書けばよいのでしょうか?
jbpb0

2020/12/21 14:14

ちゃんと編集されてないです 現状、コードがとても読み辛いです 最初の import keras の行のすぐ上に ```python 「だけ」の行を追加してください score = model.evaluate(x_test, y_test) の行のすぐ下に ``` 「だけ」の行を追加してください
jbpb0

2020/12/31 07:10

> model.compile()の中は何を書けばよいのでしょうか? 私が 2020/12/21 22:47 のコメントで紹介したWebページに例があるし、ググれば解説してるWebページが他にもたくさん見つかります そういうところを見てください
guest

回答1

0

You must compile a model before training/testing.

model.fit() より前に model.compile() が必要です
はじめてのニューラルネットワーク:分類問題の初歩

投稿2020/12/31 07:24

jbpb0

総合スコア7653

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問