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)

 

 

 

반응형

+ Recent posts