前提・実現したいこと
オーム社のPythonによる機械学習入門の本で
勉強しています。
39行目の「return datasets.base.Bunch(data=flat_data,」の
「.base」のところでエラーメッセージが発生し、いろいろしらべましたが、
コードのsklearnバージョンが古いこと以外ではわかりませんでした。
39行目の該当コードの修正方法と正しいコードをご教授ください。
宜しくお願いします。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "C:\handsign\handsign\trial_handsign_SVM.py", line 55, in <module> train = load_handimage(train_path) File "C:\handsign\handsign\trial_handsign_SVM.py", line 39, in load_handimage return datasets.base.Bunch(data=flat_data, AttributeError: module 'sklearn.datasets' has no attribute 'base'
該当のソースコード
import os import sys import glob import numpy as np from skimage import io from sklearn import datasets IMAGE_SIZE_R = 360 IMAGE_SIZE_C = 640 COLOR_BYTE = 3 CATEGORY_NUM = 2 ## ラベル名(0~)を付けたディレクトリに分類されたイメージファイルを読み込む ## 入力パスはラベル名の上位のディレクトリ def load_handimage(path): # ファイル一覧を取得 files = glob.glob(os.path.join(path, '*/*.jpg')) # イメージとラベル領域を確保 images = np.ndarray((len(files), IMAGE_SIZE_R, IMAGE_SIZE_C, COLOR_BYTE), dtype = np.uint8) labels = np.ndarray(len(files), dtype=np.int) # イメージとラベルを読み込み for idx, file in enumerate(files): # イメージ読み込み image = io.imread(file) images[idx] = image # ディレクトリ名よりラベルを取得 label = os.path.split(os.path.dirname(file))[-1] labels[idx] = int(label) # scikit-learn の他のデータセットの形式に合わせる flat_data = images.reshape((-1, IMAGE_SIZE_R * IMAGE_SIZE_C * COLOR_BYTE)) images = flat_data.view() return datasets.base.Bunch(data=flat_data, target=labels.astype(np.int), target_names=np.arange(CATEGORY_NUM), images=images, DESCR=None)
補足情報(FW/ツールのバージョンなど)
sklearn 22.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/26 02:06