第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在新圖像上使用 .predict_generator() - Keras

如何在新圖像上使用 .predict_generator() - Keras

慕碼人8056858 2021-06-02 16:41:22
我已經(jīng)使用ImageDataGenerator和flow_from_directory進行培訓(xùn)和驗證。這些是我的目錄:train_dir = Path('D:/Datasets/Trell/images/new_images/training')test_dir = Path('D:/Datasets/Trell/images/new_images/validation')pred_dir = Path('D:/Datasets/Trell/images/new_images/testing')圖像生成器代碼:img_width, img_height = 28, 28batch_size=32train_datagen = ImageDataGenerator(    rescale=1. / 255,    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=(img_height, img_width),    batch_size=batch_size,    class_mode='categorical')validation_generator = test_datagen.flow_from_directory(    test_dir,    target_size=(img_height, img_width),    batch_size=batch_size,    class_mode='categorical')找到屬于 4 個類別的 1852 張圖片找到屬于 4 個類別的 115 個圖像這是我的模型訓(xùn)練代碼:history = cnn.fit_generator(        train_generator,        steps_per_epoch=1852 // batch_size,        epochs=20,        validation_data=validation_generator,        validation_steps=115 // batch_size)現(xiàn)在我在測試文件夾中有一些新圖像(所有圖像僅在同一個文件夾中),我想對其進行預(yù)測。但是當我使用時,.predict_generator我得到:找到屬于 0 個類別的 0 個圖像所以我嘗試了這些解決方案:1) Keras:如何將 predict_generator 與 ImageDataGenerator 一起使用?這沒有成功,因為它僅嘗試驗證集。2)如何使用model.predict來預(yù)測新圖像? module image not found3)如何使用 predict_generator 對 Keras 中的流測試數(shù)據(jù)進行預(yù)測?這也沒有奏效。我的火車數(shù)據(jù)基本上存儲在 4 個單獨的文件夾中,即 4 個特定的類,驗證也以相同的方式存儲并且效果很好。所以在我的測試文件夾中,我有大約 300 張圖像,我想在這些圖像上預(yù)測并制作一個數(shù)據(jù)框,如下所示:image_name    classgghh.jpg       1rrtq.png       21113.jpg       144rf.jpg       4tyug.png       1ssgh.jpg       3我還使用了以下代碼:img = image.load_img(pred_dir, target_size=(28, 28))img_tensor = image.img_to_array(img)img_tensor = np.expand_dims(img_tensor, axis=0)img_tensor /= 255.cnn.predict(img_tensor)但我收到此錯誤: [Errno 13] Permission denied: 'D:\\Datasets\\Trell\\images\\new_images\\testing'但我一直無法predict_generator在我的測試圖像上。那么我如何使用 Keras 預(yù)測我的新圖像。我在谷歌上搜索了很多,也在 Kaggle Kernels 上搜索過,但沒有找到解決方案。
查看完整描述

3 回答

?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

因此,首先應(yīng)將測試圖像放置在測試文件夾內(nèi)的單獨文件夾中。所以就我而言,我在文件夾內(nèi)創(chuàng)建了另一個文件test夾并將其命名為all_classes. 然后運行以下代碼:


test_generator = test_datagen.flow_from_directory(

    directory=pred_dir,

    target_size=(28, 28),

    color_mode="rgb",

    batch_size=32,

    class_mode=None,

    shuffle=False

)

上面的代碼給了我一個輸出:


找到屬于 1 個類別的 306 個圖像


最重要的是,您必須編寫以下代碼:


test_generator.reset()


否則會出現(xiàn)奇怪的輸出。然后使用.predict_generator()函數(shù):


pred=cnn.predict_generator(test_generator,verbose=1,steps=306/batch_size)


運行上面的代碼將給出概率輸出,所以首先我需要將它們轉(zhuǎn)換為類號。就我而言,它是 4 個班級,因此班級編號為 0、1、2 和 3。


編寫的代碼:


predicted_class_indices=np.argmax(pred,axis=1)


下一步是我想要類的名稱:


labels = (train_generator.class_indices)

labels = dict((v,k) for k,v in labels.items())

predictions = [labels[k] for k in predicted_class_indices]

where by class numbers 將替換為 class 名稱。如果要將其保存到 csv 文件,最后一步是將其排列在數(shù)據(jù)框中,并在圖像名稱后附加預(yù)測的類。


filenames=test_generator.filenames

results=pd.DataFrame({"Filename":filenames,

                      "Predictions":predictions})

顯示您的數(shù)據(jù)框?,F(xiàn)在一切都完成了。您將獲得圖像的所有預(yù)測類別。


查看完整回答
反對 回復(fù) 2021-06-15
?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

我遇到了一些麻煩predict_generator()。這里的一些帖子幫助很大。我也在這里發(fā)布我的解決方案,希望它能幫助其他人。我做的事情:

  • 使用對新圖像進行預(yù)測 predict_generator()

  • 獲取每個預(yù)測的文件名

  • 將結(jié)果存儲在數(shù)據(jù)框中

我根據(jù)此處記錄的“貓和狗”進行二元預(yù)測。但是,該邏輯可以推廣到多類情況。在這種情況下,預(yù)測結(jié)果每類有一列。

首先,我加載我存儲的模型并設(shè)置數(shù)據(jù)生成器:

import numpy as np

import pandas as pd

from keras.preprocessing.image import ImageDataGenerator

from keras.models import load_model


# Load model

model = load_model('my_model_01.hdf5')


test_datagen = ImageDataGenerator(rescale=1./255)

test_generator = test_datagen.flow_from_directory(

        "C:/kerasimages/pred/",

        target_size=(150, 150),

        batch_size=20,

        class_mode='binary',

        shuffle=False)

注意:重要的是要指定shuffle=False以保留文件名和預(yù)測的順序。


圖像存儲在C:/kerasimages/pred/images/. 數(shù)據(jù)生成器將只在(如 中指定的)的子文件夾中查找圖像。尊重數(shù)據(jù)生成器的邏輯很重要,所以需要子文件夾。中的每個子文件夾都 被生成器解釋為一個類。在這里,生成器將報告(因為只有一個子文件夾)。如果我們進行預(yù)測,類(由生成器檢測到的)是不相關(guān)的。C:/kerasimages/pred/test_generator/images/C:/kerasimages/pred/Found x images belonging to 1 classes


現(xiàn)在,我可以使用生成器進行預(yù)測:


# Predict from generator (returns probabilities)

pred=model.predict_generator(test_generator, steps=len(test_generator), verbose=1)

在這種情況下不需要重置生成器,但如果之前已經(jīng)設(shè)置過生成器,則可能需要使用test_generator.reset().


接下來,我舍入概率以獲取類并檢索文件名:


# Get classes by np.round

cl = np.round(pred)

# Get filenames (set shuffle=false in generator is important)

filenames=test_generator.filenames

最后,結(jié)果可以存儲在數(shù)據(jù)框中:


# Data frame

results=pd.DataFrame({"file":filenames,"pr":pred[:,0], "class":cl[:,0]})


查看完整回答
反對 回復(fù) 2021-06-15
?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

您最有可能在使用flow_from_directory. 閱讀文檔:


flow_from_directory(目錄,...)


在哪里:


directory:目標目錄的路徑。每個類應(yīng)該包含一個子目錄。每個子目錄目錄樹中的任何 PNG、JPG、BMP、PPM 或 TIF 圖像都將包含在生成器中。


這意味著在傳遞給此函數(shù)的目錄中,您必須創(chuàng)建子目錄并將圖像放置在該子目錄中。否則,當圖像在您傳遞的目錄(不是子目錄)中時,確實有 0 個圖像和 0 個類。


編輯


好的,如果您要執(zhí)行預(yù)測,我相信您希望使用以下predict功能:(請注意,您必須以與學(xué)習(xí)過程中相同的格式向網(wǎng)絡(luò)提供數(shù)據(jù))


image = img_to_array(load_img(f"{directory}/{foldername}/{filename}"))

# here you prepare the input data, for example here we take the gray image

# gray scale is the 1st channel in the Lab color space

color_me = rgb2lab((1.0 / 255) * color_me)[:, :, 0]

color_me = color_me.reshape(color_me.shape + (1,))

# here data is in the format which is accepted by, in this case, my model

# for your model you have to do the preparation just the same as in the case of learning process

output = model.predict(np.array([color_me]))

# and here you have your predicted output


查看完整回答
反對 回復(fù) 2021-06-15
  • 3 回答
  • 0 關(guān)注
  • 352 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號