ํฌ์ŠคํŠธ

keras-ํ•จ์ˆ˜ํ˜• API

keras-ํ•จ์ˆ˜ํ˜• API

๐Ÿ’ก ํ•จ์ˆ˜ํ˜• API

Sequential ํด๋ž˜์Šค๋Š” ์ธต์„ ์ฐจ๋ก€๋Œ€๋กœ ์Œ“์€ ๋ชจ๋ธ์„ ๋งŒ๋“ ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ์ธต์„

์ฐจ๋ก€๋Œ€๋กœ ์Œ“์€ ๋ชจ๋ธ์„ ๋งŒ๋“ ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋”ฅ๋Ÿฌ๋‹์—์„œ๋Š” ์ข€ ๋” ๋ณต์žกํ•œ ๋ชจ๋ธ์ด ๋งŽ์ด ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ž…๋ ฅ์ด 2๊ฐœ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์ถœ๋ ฅ์ด 2๊ฐœ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ์— Sequential ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๋Œ€์‹  ํ•จ์ˆ˜ํ˜• API๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

1
2
3
4
5
6
7
8
9
inputs = keras.layers.Input(shape=(784,))

# dense1์ธต์— ์ž…๋ ฅ๊ฐ’ inputs๋ฅผ ํ†ต๊ณผ์‹œํ‚จ๋‹ค.
hidden = dense1(inputs)

# ์ถœ๋ ฅ์ธต
outputs = dense2(hidden)

model = keras.Model(inputs,outputs)

๋งˆ์น˜ ์ฒด์ธ์ฒ˜๋Ÿผ ์ž…๋ ฅ์—์„œ ์ถœ๋ ฅ๊นŒ์ง€ ์—ฐ๊ฒฐํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— Model ํด๋ž˜์Šค์— ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„

์ง€์ •ํ•˜์—ฌ ๋ชจ๋ฐ์„ ๋งŒ๋“ ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ชจ๋ธ์„ ๋งŒ๋“ค ๊ฒฝ์šฐ ์ค‘๊ฐ„์— ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ์ธต์„ ์—ฐ๊ฒฐํ• 

์ˆ˜ ์žˆ๋‹ค.



๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

1
2
model = keras.models.load_model('best-cnn-model.h5')
model.layers


์•„๋ž˜์™€ ๊ฐ™์ด InputLayer์™€ ์ฒซ ๋ฒˆ์งธ Conv2D์ธต์„ ๋ฝ‘์•„์„œ ์ƒˆ๋กœ์šด ๋ชจ๋ธ์„ ๋งŒ๋“ค์—ˆ์„ ๋•Œ

predict ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด Conv2D์˜ ์ถœ๋ ฅ์„ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ conv_acti๋กœ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

1
conv_acti = keras.Model(model.input, model.layers[0].output)

์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.