728x90
반응형
import tensorflow as tf
import matplotlib.pyplot as plt
image_path = tf.keras.utils.get_file('cat.jpg', 'http://bit.ly/33U6mH9')
# imread : 이미지값을 숫자로 리턴
image = plt.imread(image_path)
print(image.shape)
# (241, 320, 3)
print(image[0])
[[223 220 203]
[224 221 204]
[224 221 204]
[224 221 204]
[224 221 204]
[225 222 205]
[225 222 205]
[225 222 205]
[224 221 204]
[224 221 204]
[224 221 204]
[225 222 205]
[225 222 205]
[225 222 205]
[225 222 205]
[226 223 206]
[224 225 207]
[224 225 207]
[226 225 207]
[226 225 207]
[226 225 207]
[226 225 207]
[226 225 207]
[227 224 207]
[226 223 206]
[226 223 206]
[226 223 206]
[226 223 206]
[228 222 206]
[229 223 207]
[229 223 207]
[229 223 207]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[228 225 206]
[230 223 204]
[230 223 204]
[231 224 205]
[231 224 205]
[232 225 206]
[232 225 206]
[231 224 205]
[231 224 205]
[231 224 205]
[231 224 205]
[231 224 205]
[231 224 205]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[230 227 208]
[230 227 208]
[231 228 209]
[231 228 209]
[231 228 209]
[231 228 211]
[232 229 212]
[232 229 212]
[233 230 215]
[233 230 215]
[233 229 217]
[233 229 217]
[233 229 217]
[233 229 217]
[233 229 217]
[233 229 218]
[232 229 214]
[232 229 214]
[232 229 214]
[232 229 214]
[232 229 214]
[232 229 214]
[232 229 214]
[232 229 214]
[231 228 213]
[230 227 212]
[230 227 212]
[229 226 211]
[229 226 211]
[230 227 212]
[230 227 212]
[231 228 213]
[231 228 211]
[231 228 211]
[231 228 211]
[231 228 211]
[231 228 211]
[231 228 211]
[231 228 211]
[231 228 211]
[232 229 212]
[231 228 211]
[231 228 211]
[231 228 211]
[231 228 211]
[230 227 210]
[230 227 210]
[230 227 210]
[234 227 209]
[234 227 209]
[234 227 209]
[233 226 208]
[233 226 208]
[233 226 208]
[233 226 208]
[232 225 207]
[234 227 209]
[234 227 209]
[234 227 209]
[233 226 208]
[233 226 208]
[233 226 208]
[233 226 208]
[232 225 207]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[232 225 206]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[233 225 204]
[232 227 208]
[232 227 208]
[232 227 208]
[232 227 208]
[232 227 208]
[232 227 208]
[232 227 208]
[232 227 208]
[232 227 208]
[232 227 208]
[233 228 209]
[233 228 209]
[233 228 209]
[233 228 209]
[234 229 210]
[234 229 210]
[233 228 209]
[233 228 209]
[234 229 209]
[235 229 207]
[236 230 208]
[236 230 206]
[237 231 205]
[237 231 205]
[235 229 205]
[236 232 207]
[236 231 211]
[232 229 210]
[232 231 213]
[235 233 220]
[233 233 221]
[231 231 219]
[246 228 206]
[245 227 205]
[237 215 194]
[217 190 169]
[195 164 143]
[181 145 123]
[172 131 109]
[168 123 100]
[153 107 83]
[150 104 78]
[149 104 75]
[150 106 77]
[149 108 76]
[147 109 73]
[146 110 74]
[149 113 77]
[160 126 99]
[165 133 110]
[170 142 121]
[174 148 131]
[179 157 146]
[183 166 159]
[184 170 167]
[180 170 169]
[182 173 174]
[188 179 182]
[192 183 184]
[194 184 183]
[197 186 182]
[197 186 180]
[190 177 168]
[179 165 156]
[182 165 155]
[184 168 155]
[188 170 156]
[188 169 154]
[181 160 141]
[172 150 129]
[170 148 125]
[173 151 128]
[180 158 135]
[176 156 132]
[195 179 156]
[226 211 190]
[234 223 205]
[231 224 206]
[231 225 209]
[232 226 212]
[229 221 200]
[229 221 200]
[228 220 199]
[228 220 199]
[227 219 198]
[227 219 198]
[226 218 197]
[226 218 197]
[225 217 196]
[225 217 196]
[225 217 196]
[225 217 196]
[224 216 195]
[224 216 195]
[224 216 195]
[224 216 195]
[224 217 199]
[224 217 199]
[224 217 199]
[224 217 199]
[223 216 198]
[223 216 198]
[223 216 198]
[223 216 198]
[223 216 198]
[223 216 198]
[222 215 197]
[222 215 197]
[222 215 197]
[222 215 197]
[221 214 196]
[221 214 196]
[220 215 193]
[220 215 193]
[220 215 195]
[220 215 195]
[219 214 194]
[219 214 194]
[219 214 195]
[219 214 195]
[219 213 197]
[218 212 196]
[218 212 196]
[218 212 198]
[218 212 198]
[217 211 197]
[217 211 197]
[217 211 197]
[221 213 192]
[221 213 192]
[221 213 192]
[221 213 192]
[221 213 192]
[219 212 193]
[219 212 193]
[219 212 193]
[217 210 191]
[217 212 193]
[217 212 193]
[217 212 193]
[217 212 193]
[218 213 194]
[218 213 194]
[216 213 194]]
titles = ['RGB Image', 'Red channel', 'Green channel', 'Blue channel']
from numpy import array, zeros_like
def channel(image, color) :
if color not in (0, 1, 2) : return image
c = image[..., color]
print(c)
z = zeros_like(c)
return array([(c,z,z),(z,c,z),(z,z,c)][color]).transpose(1,2,0) # 행 배열의 형태를 변경
colors = range(-1, 3)
fig, axes = plt.subplots(1, 4, figsize = (13, 3))
objs = zip(axes, titles, colors)
for ax, title, color in objs :
ax.imshow(channel(image, color))
ax.set_title(title)
ax.set_xticks(())
ax.set_yticks(())
plt.show()
[[223 224 224 ... 218 218 216]
[224 224 224 ... 218 218 216]
[224 224 224 ... 218 216 216]
...
[138 138 144 ... 198 196 194]
[144 134 135 ... 200 200 200]
[148 145 143 ... 200 198 196]]
[[220 221 221 ... 213 213 213]
[221 221 221 ... 213 213 213]
[221 221 221 ... 213 213 213]
...
[ 96 96 101 ... 191 189 187]
[102 92 92 ... 193 193 193]
[101 98 97 ... 193 191 189]]
[[203 204 204 ... 194 194 194]
[204 204 204 ... 194 194 194]
[204 204 204 ... 194 194 196]
...
[ 38 38 46 ... 172 170 168]
[ 44 34 37 ... 174 174 174]
[ 49 46 47 ... 174 172 170]]
# Conv2D 컨볼류션 층
# kernel_size : 3행3열 이미지분석단위
# strides : 이미지분석을 위해 이동하는 픽셀수 기본값은 1
# padding : 분석결과의 픽셀이 줄지 않도록 패딩을 설정
# valide : 패딩설정 안함 // same : 패딩설정함
# filters : 층의 갯수
conv1 = tf.keras.layers.Conv2D(kernel_size=(3,3),strides=(2,2), padding='valid',filters=16)
# Maxpool2D : 최대플링층
# pool_size : 플링칭의 형태
pool1 = tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=(2,2))
# dropout 층
# 과대적합을 해소하기 위한 옵션
# rate 만큼 분석 제외
pool1 = tf.keras.layers.Dropout(rate=0.3)
반응형
'Data_Science > Data_Analysis_Py' 카테고리의 다른 글
49. cifar10 || convolution (0) | 2021.11.26 |
---|---|
48. Fashion MNIST || convolution (0) | 2021.11.26 |
46. 와인품종 예측 딥러닝 이항분류 || (0) | 2021.11.25 |
45. 보스턴주택가격 딥러닝 회귀 예측 평가 (0) | 2021.11.25 |
44. 보스턴주택가격 회귀예측 || kfold (0) | 2021.11.25 |