การสร้างข้อมูลใหม่เพื่อการเรียนรู้อย่างลึกโดยใช้ Keras


10

ฉันเป็นผู้เริ่มต้นของ Keras และฉันได้เริ่มต้นด้วยตัวอย่าง MNIST เพื่อทำความเข้าใจว่าไลบรารีใช้งานได้จริงอย่างไร ข้อมูลโค้ดของปัญหา MNIST ในโฟลเดอร์ตัวอย่างของ Keras นั้นได้รับเป็น:

import numpy as np
np.random.seed(1337)  # for reproducibility

from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten  
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils

batch_size = 128
nb_classes = 10
nb_epoch = 12

# input image dimensions
img_rows, img_cols = 28, 28
# number of convolutional filters to use
nb_filters = 32
# size of pooling area for max pooling
nb_pool = 2
# convolution kernel size
nb_conv = 3

# the data, shuffled and split between train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(X_train.shape[0], 1, img_rows, img_cols)
X_test = X_test.reshape(X_test.shape[0], 1, img_rows, img_cols)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
..........

ฉันไม่สามารถเข้าใจฟังก์ชั่นการก่อร่างใหม่ที่นี่ มันทำอะไรและทำไมเราจึงใช้มัน?

คำตอบ:


8

mnist.load_data()ป้อนตัวเลข MNIST ด้วยโครงสร้าง(nb_samples, 28, 28)เช่นด้วย 2 มิติต่อตัวอย่างที่แสดงรูปภาพ greyscale 28x28

อย่างไรก็ตามชั้น Convolution2D ใน Keras ได้รับการออกแบบให้ทำงานกับ 3 มิติต่อตัวอย่าง มีอินพุตและเอาต์พุต 4 มิติ นี้ภาพปกสีแต่ที่สำคัญกว่าจะครอบคลุมชั้นลึกของเครือข่ายที่แต่ละตัวอย่างได้กลายเป็นชุดของคุณลักษณะเช่นแผนที่(nb_samples, nb_channels, width, height)(nb_samples, nb_features, width, height)

อิมเมจ greyscale สำหรับการป้อนตัวเลข MNIST อาจต้องการการออกแบบเลเยอร์ CNN ที่แตกต่างกัน (หรือ param ไปยังตัวสร้างเลเยอร์เพื่อยอมรับรูปร่างที่แตกต่าง) หรือการออกแบบสามารถใช้ CNN มาตรฐานได้อย่างชัดเจนและคุณต้องแสดงตัวอย่างอย่างชัดเจน ภาพ ทีม Keras เลือกวิธีการหลังซึ่งต้องการรูปทรงใหม่


คุณช่วยอธิบายตรรกะเบื้องหลัง "np.random.seed (1337)" ที่ใช้ในรหัสได้ไหม ทำไมต้อง 1337
enterML

2
ไม่มีอะไรพิเศษเกี่ยวกับ 1,337 เพื่อวัตถุประสงค์ของสคริปต์ยกเว้นการทำซ้ำ เป็นวิธีปฏิบัติที่ดีในการเพาะเชื้อ RNG ของคุณเพื่อให้คุณสามารถทำซ้ำงานที่ประสบความสำเร็จในโอกาสอื่น ๆ จำนวนเป็นบิตของเรื่องตลกภายในสำหรับแฮกเกอร์ - urbandictionary.com/define.php?term=1337
นีลตำหนิ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.