import tflearn.datasets.oxflower17 as oxflower17
x, y = oxflower17.load_data(one_hot=True)
원래는 이렇게 import해서 진행하려고 했는데, 보안 정책 때문인건지 Colab에서는 oxflower17 데이터셋이 안불러와져서 google drvie에 넣은 다음 진행했습니다.
다음은 제 코드입니다.
import keras,os
from keras.models import Sequential
from keras.layers import Dense, Conv2D, MaxPool2D , Flatten, BatchNormalization, Dropout
from keras.preprocessing.image import ImageDataGenerator
import numpy as np
np.random.seed(1000)
data = np.load('/content/drive/MyDrive/oxflower17.npz')
x = data['X']
y = data['Y']
model = Sequential()
model.add(Conv2D(input_shape=(224,224,3),filters=64,kernel_size=(3,3),padding="same",
activation="relu"))
model.add(Conv2D(filters=64,kernel_size=(3,3),padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2,2),strides=(2,2)))
model.add(Conv2D(filters=128, kernel_size=(3,3), padding="same", activation="relu"))
model.add(Conv2D(filters=128, kernel_size=(3,3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2,2),strides=(2,2)))
model.add(Conv2D(filters=256, kernel_size=(3,3), padding="same", activation="relu"))
model.add(Conv2D(filters=256, kernel_size=(3,3), padding="same", activation="relu"))
model.add(Conv2D(filters=256, kernel_size=(3,3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2,2),strides=(2,2)))
model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activation="relu"))
model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activation="relu"))
model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2,2),strides=(2,2)))
model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activation="relu"))
model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activation="relu"))
model.add(Conv2D(filters=512, kernel_size=(3,3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2,2),strides=(2,2)))
model.add(Flatten())
model.add(BatchNormalization())
model.add(Dense(units=4096,activation="relu"))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Dense(units=4096,activation="relu"))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Dense(units=1000,activation="relu"))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Dense(units=17, activation="softmax"))
model.summary()
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x, y, batch_size=64, epochs=100, verbose=1, validation_split=0.2, shuffle=True)
1. oxflower dataset 다운로드
이 사이트에 들어가서 oxflower17.npz를 다운받습니다.
2. google drive 연결
먼저, 왼쪽 사이드바에서 파일을 클릭하고 드라이브 마운트를 클릭합니다.
저는 이미 연결해서 안 뜨는 걸 수도 있는데 먼저 구글 계정을 연결하라고 뜬 다음, 액세스 허용 메시지가 뜨는데 원하는 계정에 로그인한 후 연결을 눌러줍니다.
그러면 content 밑에 이런식으로 drive가 뜹니다. 그럼 정상적으로 google drive와 연결된 것입니다.
3. 구글드라이브에 데이터셋 넣기
구글드라이브 안의 원하는 폴더에 데이터셋을 넣고, 경로 복사를 누릅니다.
코드에서 data = np.load('/content/drive/MyDrive/oxflower17.npz') 여기 괄호 안에 복사한 경로를 넣어줍니다.
이렇게 한 후, 실행시키면 잘 동작합니다!
혹시 BadZipFile error가 발생한다면, oxflower를 다시 다운받으시거나, 경로를 다시 확인해보시기 바랍니다.
MyDrive 폴더에 바로 파일을 넣으니 잘 실행되었습니다!
'코딩' 카테고리의 다른 글
창의융합종합설계1 회고록 (feat. Java, SpringBoot, Amazon EC2, Amazon S3, Redis, Docker) (1) | 2023.12.22 |
---|---|
[멋사]🦁멋쟁이사자처럼 11기 중앙해커톤 회고록🦁 (0) | 2023.10.04 |
[멋사]🦁멋쟁이사자처럼 11기 교내해커톤 회고록🦁 (2) | 2023.10.04 |
[멋사]🦁멋쟁이사자처럼 11기 아이디어톤🦁 (0) | 2023.10.04 |