티스토리 뷰

5. 파이썬

CNN 합성곱 신경망

패스트코드블로그 2020. 5. 8. 22:54

https://ko.wikipedia.org/wiki/%ED%95%A9%EC%84%B1%EA%B3%B1_%EC%8B%A0%EA%B2%BD%EB%A7%9D

 

합성곱 신경망 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

합성곱 신경망(Convolutional neural network, CNN)은 시각적 이미지를 분석하는 데 사용되는 깊고 피드-포워드적인 인공신경망의 한 종류이다.

 

인공 신경망 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 인공 신경망은 노드들의 그룹으로 연결되어 있으며 이들은 뇌의 방대한 뉴런의 네트워크과 유사하다. 위 그림에서 각 원모양의 노드는 인공 뉴런을 나타내고 �

ko.wikipedia.org

CNN은 정규화 된 버전의 다층 퍼셉트론이다. 다층 퍼셉트론은 일반적으로 완전히 연결된 네트워크, 즉 한 계층의 각 뉴런이 다음 계층의 모든 뉴런에 연결됨을 의미한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import tensorflow as tf
import matplotlib.pyplot as plt
from numpy import array, zeros_like
class Cnn:
    def show(self):
        # No module named 'PIL' => pip install pillow
        image_path = tf.keras.utils.get_file('cat.jpg''http://bit.ly/33U6mH9')
        image = plt.imread(image_path)
        titles = ['RGB Image''Red channel''Green channel''Blue channel']
        # cmaps = [None, plt.cm.Reds_r, plt.cm.Greens_r, plt.cm.Blues_r]
        colors = range(-13)
        fig, axes = plt.subplots(14, figsize=(133))
        objs = zip(axes, titles, colors)
        for ax, title, color in objs:
            ax.imshow(self.channel(image, color))
            ax.set_title(title)
            ax.set_xticks(())
            ax.set_yticks(())
        plt.show()
    @staticmethod
    def channel(image, color):
        if color not in (012): return image
        c = image[..., color]
        z = zeros_like(c)
        return array([(c, z, z), (z, c, z), (z, z, c)][color]).transpose(120)
if __name__ == '__main__':
    instance = Cnn()
    instance.show()
cs
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함