日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

图像多分类——卷积神经网络

發布時間:2023/12/20 卷积神经网络 98 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像多分类——卷积神经网络 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

例子參考:https://www.jiqizhixin.com/articles/2019-05-15-2

數據集:https://www.cs.ccu.edu.tw/~wtchu/projects/MoviePoster/index.html


將獲取到原始數據集,其中,有三個文件,? ?Movie Poster Dataset是1980-2015年部分影片海報圖片,?Movie Poster Metadata是1980-2015年部分影片的數據詳情,example:

? ? ? ? ? ? ? ? ? ? ? ? ??

Readme則是對?Movie Poster Metadata文件里邊的字段解釋,在訓練過程中只用到IMPId和 Genre(影片類型)。

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

步驟:

  • 數據處理

獲取到影片的類型對影片類型實現one-hot編碼,如果是屬于哪個類型,用1表示,其他為0,得到如下文件,

? ? ? ? ? ? ? ? ? ? ? ? ?

考慮到特征的相關性,刪除影片比較少的類型列(將數量小于50的類型列進行刪除),最終留下22個電影類型,如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ?

將電影類型作為最終的結果值,然后加載圖片:

for i in tqdm(range(train.shape[0])): img = image.load_img('D:/aayu/實例/圖像多分類/data/Images/'+train['ID'][i]+'.jpg',target_size=(400,400,3)) img = image.img_to_array(img) img = img/255 train_image.append(img) X = np.array(train_image)
  • 模型構建

模型是由4層卷積和3層全連接層構成,具體參數如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???

訓練結果為:

  • 模型預測

新增一個復仇者聯盟的海報對數據進行預測(此處可更換為任意海報數據),加載數據:

img = image.load_img('F:/aayu/圖像/data/GOT.jpg',target_size=(400,400,3)) img = image.img_to_array(img) img = img/255

預測結果:

?

完整代碼:

import keras from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers import Conv2D, MaxPooling2D from keras.utils import to_categorical from keras.preprocessing import image import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from tqdm import tqdm #%matplotlib inline train = pd.read_csv('F:/aayu/圖像/data/multi-data.csv')print(train.head())train_image = [] for i in tqdm(range(train.shape[0])): img = image.load_img('F:/aayu/圖像/data/Images/'+train['ID'][i]+'.jpg',target_size=(400,400,3)) img = image.img_to_array(img) img = img/255 train_image.append(img) X = np.array(train_image) y = np.array(train.drop(['ID', 'Genre','News','Reality-TV','Italian','Polish','Adult','Talk-Show','Spanish','Russian','Cantonese','R','PG','German','English','Japanese','Filipino','French','G','Game-Show','Hungarian'],axis=1)) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42, test_size=0.1) #model model = Sequential() model.add(Conv2D(filters=16, kernel_size=(5, 5), activation="relu", input_shape=(400,400,3))) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Conv2D(filters=32, kernel_size=(5, 5), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Conv2D(filters=64, kernel_size=(5, 5), activation="relu")) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Conv2D(filters=64, kernel_size=(5, 5), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(64, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(22, activation='sigmoid')) model.summary() model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test), batch_size=64) #precise #加入新數據,進行測試 img = image.load_img('F:/aayu/圖像/data/GOT.jpg',target_size=(400,400,3)) img = image.img_to_array(img) img = img/255 classes = np.array(train.columns[:22]) proba = model.predict(img.reshape(1,400,400,3)) top_3 = np.argsort(proba[0])[:-4:-1] for i in range(3): print("{}".format(classes[top_3[i]])+" ({:.3})".format(proba[0][top_3[i]])) plt.imshow(img)

總結:與minist數據集相比,該數據集的分類中存在一張圖片多個類的情況,而minist數據集當中一張圖片代表一個數字,也就是一個分類,所以圖像分類和圖像多分類在本質上的區別在于數據集,算法實現基本都是一樣的。

(數據集正在處理中,github網址為:https://github.com/YUXUEPENG/ImageMulti-Classification.git)

?

?

?

?

總結

以上是生活随笔為你收集整理的图像多分类——卷积神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。