<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>비버의 Data log</title>
    <link>https://bbdata.tistory.com/</link>
    <description>포털 서비스 회사에서 Data Scientist 로 일하고 있는 비버입니다.</description>
    <language>ko</language>
    <pubDate>Thu, 13 Aug 2026 19:39:11 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>비버데이터</managingEditor>
    <image>
      <title>비버의 Data log</title>
      <url>https://tistory1.daumcdn.net/tistory/3330326/attach/88a04b74437d40a59043a858049e38b7</url>
      <link>https://bbdata.tistory.com</link>
    </image>
    <item>
      <title>[ETL] Airflow 와 Jenkins 비교 - 무엇을 사용할까?</title>
      <link>https://bbdata.tistory.com/29</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651828580226&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[ETL] Airflow 와 Jenkins 비교 - 무엇을 사용할까?&quot; data-og-description=&quot;회사에서 현재 기획 단계에 있는 새로운 시스템을 위해 ETL을 설계 &amp;amp; 구현해야 할 일이 생겼다. 수집된 raw data 가 서비스에 사용되기까지 많은 가공 단계를 거쳐야 할 것으로 예상되는데... 이 정&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/ETL-Airflow-%EC%99%80-Jenkins-%EB%B9%84%EA%B5%90-%EB%AC%B4%EC%97%87%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&quot; data-og-url=&quot;https://velog.io/@jaylnne/ETL-Airflow-와-Jenkins-비교-무엇을-사용할까&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dioQO2/hyOi03wbhP/LFwNDmeLw3lwvRSBckfsiK/img.png?width=1132&amp;amp;height=569&amp;amp;face=659_196_724_266,https://scrap.kakaocdn.net/dn/dU2NJB/hyOhqvZWrX/ZuDS1ueRcK5pKYeJgYkIE0/img.png?width=1132&amp;amp;height=569&amp;amp;face=659_196_724_266,https://scrap.kakaocdn.net/dn/lfasR/hyOjaZmY15/2eWR97iDRgxD5K43je6nL1/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/ETL-Airflow-%EC%99%80-Jenkins-%EB%B9%84%EA%B5%90-%EB%AC%B4%EC%97%87%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/ETL-Airflow-%EC%99%80-Jenkins-%EB%B9%84%EA%B5%90-%EB%AC%B4%EC%97%87%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dioQO2/hyOi03wbhP/LFwNDmeLw3lwvRSBckfsiK/img.png?width=1132&amp;amp;height=569&amp;amp;face=659_196_724_266,https://scrap.kakaocdn.net/dn/dU2NJB/hyOhqvZWrX/ZuDS1ueRcK5pKYeJgYkIE0/img.png?width=1132&amp;amp;height=569&amp;amp;face=659_196_724_266,https://scrap.kakaocdn.net/dn/lfasR/hyOjaZmY15/2eWR97iDRgxD5K43je6nL1/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[ETL] Airflow 와 Jenkins 비교 - 무엇을 사용할까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;회사에서 현재 기획 단계에 있는 새로운 시스템을 위해 ETL을 설계 &amp;amp; 구현해야 할 일이 생겼다. 수집된 raw data 가 서비스에 사용되기까지 많은 가공 단계를 거쳐야 할 것으로 예상되는데... 이 정&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/기타</category>
      <category>airflow</category>
      <category>batch job scheduling</category>
      <category>Data Engineering</category>
      <category>data pipeline</category>
      <category>ETL</category>
      <category>Jenkins</category>
      <category>workflow</category>
      <category>빅데이터</category>
      <category>에어플로우</category>
      <category>젠킨스</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/29</guid>
      <comments>https://bbdata.tistory.com/29#entry29comment</comments>
      <pubDate>Sat, 2 Apr 2022 23:51:51 +0900</pubDate>
    </item>
    <item>
      <title>[Tensorflow 2.0] 굳이 dtype float32 를 사용하는 이유</title>
      <link>https://bbdata.tistory.com/28</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651808155819&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Tensorflow 2.0] 굳이 dtype float32 를 사용하는 이유&quot; data-og-description=&quot;sample data 를 tensorflow 로 생성하다 보면 dtype 을 float32 로 지정하는 경우가 자주 보인다.&amp;nbsp;float32 는 32 비트 숫자, float64 는 64 비트 숫자이다.때문에 float64 는 숫자를 더 정밀하게 표현할 수 있고, floa&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/Tensorflow-2.0-%EA%B5%B3%EC%9D%B4-dtype-float32-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0&quot; data-og-url=&quot;https://velog.io/@jaylnne/Tensorflow-2.0-굳이-dtype-float32-를-사용하는-이유&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/0uT4A/hyOhDPj3dP/Zbl6fw5By26oponSVpv2dK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/s3mBN/hyOhy1x3F5/R5CwRqWSr0nlmRjLDursik/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/Tensorflow-2.0-%EA%B5%B3%EC%9D%B4-dtype-float32-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/Tensorflow-2.0-%EA%B5%B3%EC%9D%B4-dtype-float32-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/0uT4A/hyOhDPj3dP/Zbl6fw5By26oponSVpv2dK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/s3mBN/hyOhy1x3F5/R5CwRqWSr0nlmRjLDursik/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Tensorflow 2.0] 굳이 dtype float32 를 사용하는 이유&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;sample data 를 tensorflow 로 생성하다 보면 dtype 을 float32 로 지정하는 경우가 자주 보인다.&amp;nbsp;float32 는 32 비트 숫자, float64 는 64 비트 숫자이다.때문에 float64 는 숫자를 더 정밀하게 표현할 수 있고, floa&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ML&amp;amp;DL/Tensorflow</category>
      <category>dtype</category>
      <category>float32</category>
      <category>float64</category>
      <category>Python</category>
      <category>tensorflow</category>
      <category>데이터사이언스</category>
      <category>딥러닝</category>
      <category>머신러닝</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/28</guid>
      <comments>https://bbdata.tistory.com/28#entry28comment</comments>
      <pubDate>Sat, 2 Apr 2022 09:23:58 +0900</pubDate>
    </item>
    <item>
      <title>2022년 3월 회고_비버의 Data log</title>
      <link>https://bbdata.tistory.com/27</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 공시 분석 시스템&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI 모델을 탑재한 공시 분석 시스템의 초기 기획을 진행하고 있다. 기획자와 협업을 하고 있는 것이 아니라... &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;직접 기획을 하고 있다.&lt;/b&gt;&lt;/span&gt; 신규 서비스 론칭을 줄줄이 앞두고 있는 상황이라, 현재 우리 연구소에 배정해줄 기획 인력이 없기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 개발팀 사람들에게 이 얘기를 했더니 '업무 일정표'를 작성하고 계시는 거냐는 질문을 받았다. 아니다...  어딜 누르면 어디로 넘어가고, 어디에 커서를 올리면 어떤 팝업이 뜨고, 무슨 문구를 어디에 배치하면 되는지 등... 말 그대로 페이지 구성을 하고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 할 수 없는 일이라는 생각은 들지 않는데, 내가 하는 것이 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;과연 효율적인가에 대한 의문이 문득문득 짓쳐든다. &lt;/b&gt;&lt;/span&gt;업무 일지를 들여다봤더니 최근 한 달간은 개발보다 구글 프레젠테이션 파일을 작성하는 업무 항목이 더 많았다. 흠...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignLeft&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;021&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/021.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/021.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(대표님 저는 기획자가 아닌데요...!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 어쩔 수 없다. 속으로 울어봐야 뭐가 달라지나. 나도 기획팀 상황을 모르지는 않아서 대표님의 입장이 이해가 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;효율과 비효율을 떠나서, 일단 내가 할 수 있는 건 모두 해보는 수밖에. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;긍정 회로를 돌려보자.&lt;/b&gt;&lt;/span&gt; 아이디어 제안부터 기획, 개발까지 프로젝트의 전반적인 단계를 모두 직접 해보는 경험도 나중엔 다 뼈와 살이 되어 날 성장하게 해 줄 거다. (부디! 제발! ㅎㅎ)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 알고리즘 공부&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알고리즘 공부를 다시 시작했다. 실서비스를 개발하면 할수록 실무에는 백엔드적인 지식이 중요하다는 걸 느끼기 때문이다. 우리 회사에는 MLOps 조직이 따로 없고, 인프라팀도 최근에 새롭게 막 재조직되었다. 그래서 자신이&amp;nbsp;개발한 모델들이 연구적 의미 그 이상으로 효용성을 가지길 원한다면 백엔드 엔지니어링은 필수다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRxSbk/btrxZFDimAy/D5LSKNiyNJN03UdEk0YsKk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRxSbk/btrxZFDimAy/D5LSKNiyNJN03UdEk0YsKk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRxSbk/btrxZFDimAy/D5LSKNiyNJN03UdEk0YsKk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRxSbk%2FbtrxZFDimAy%2FD5LSKNiyNJN03UdEk0YsKk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;247&quot; height=&quot;204&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;204&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(그러니까 한마디로 AI 모델 개발할 줄 아는 백엔드 엔지니어가 되어야... 읍읍!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무튼! 그래서 작년 말쯤부터 느리지만 꾸준히 공부는 해오고 있는데... 공부를 하면 할수록 드는 찝찝함이 있었다. 그게 뭘까 했더니 결국 '기본'이다. 땅을 잘 다져야 그 위에 튼튼한 집을 지을 수 있다는 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 기술, 더 좋은 기술을 적용하는 것도 좋지만... &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;역시 서버 개발의 시작은 자료구조와 알고리즘이 아닐까&lt;/span&gt;. &lt;/b&gt;우리 회사도 그렇지만, 대다수의 IT기업들이 코딩 테스트를 시행하고 있는 건 다 그만한 이유가 있는 걸 테다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-03-31 오전 9.54.37.png&quot; data-origin-width=&quot;2792&quot; data-origin-height=&quot;1858&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nbb7X/btrx0ExpnNb/ERkkt8wEa7YITXGeX5RDmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nbb7X/btrx0ExpnNb/ERkkt8wEa7YITXGeX5RDmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nbb7X/btrx0ExpnNb/ERkkt8wEa7YITXGeX5RDmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnbb7X%2Fbtrx0ExpnNb%2FERkkt8wEa7YITXGeX5RDmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2792&quot; height=&quot;1858&quot; data-filename=&quot;스크린샷 2022-03-31 오전 9.54.37.png&quot; data-origin-width=&quot;2792&quot; data-origin-height=&quot;1858&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;프로그래머스에서 운영하는 알고리즘 파이썬 스터디를&lt;/b&gt;&lt;/span&gt; 신청해 진행하고 있다. 코딩 테스트 준비 코스이긴 한데 코테에 응시하려는 목적은 아니고, 커리큘럼이 짧고 효율적으로 짜여있는 것 같아서 골랐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코스의 장점은, 다른 사람들과 풀이에 대한 리뷰를 서로 주고받으며 공부할 수 있다는 점이다. 굉장히 창의적인 접근으로 문제를 푸는 사람들이 많아서 재밌다.   그리고 내가 여전히 발전해야 할 부분이 많다는 것도 새삼 깨닫게 된다. (취업 준비를 하던 시기에 알고리즘 공부를 꽤 했다고 생각했었는데도 말이다...)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 사내 스터디&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리 연구소에는 &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;주마다 한 번씩 모이는 팀 스터디가&lt;/span&gt;&lt;/b&gt; 있었다. 인공지능 분야의 최신 트렌드를 파악하고, 서로 모르는 것을 물어보며 궁금증을 해결하는 유익한 시간이었다. 그런데 최근 1년, 회사가 급격한 변동을 겪는 동안 시급한 업무에 치이면서 흐지부지 사라져 버렸다.  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 우리 팀은 채용을 적극적으로 진행하고 있다. 앞으로 신입분들이 많이 들어오게 될 텐데, &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;이 문화를 다시금 되살려 서로 도우며 함께 성장해나가는 분위기를 만들고 싶다.&lt;/b&gt;&lt;/span&gt; 진행 방식이나 주제에 대한 아이디어가 몇 가지 잡히면 팀장님과 팀원들에게 말씀드려 보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>회고록</category>
      <category>개발성장일지</category>
      <category>어쩌다보니팀내최고연차팀원이된</category>
      <category>주니어개발자</category>
      <category>회고록</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/27</guid>
      <comments>https://bbdata.tistory.com/27#entry27comment</comments>
      <pubDate>Thu, 31 Mar 2022 09:49:14 +0900</pubDate>
    </item>
    <item>
      <title>[python] np.linspace(), tf.linspace() 1차원 배열 생성 함수 정리</title>
      <link>https://bbdata.tistory.com/26</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651808011304&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[python] np.linspace(), tf.linspace() 1차원 배열 생성 함수 정리&quot; data-og-description=&quot;보다시피 전자는 numpy 의 함수, 후자는 tensorflow 의 함수이다.linspace 는 Linear Space(선형 공간)의 줄임말 같다.모든 함수가 그렇듯 이름에서 그 기능이 유추된다.  두 개 함수 모두 1차원 배열을 생&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/python-np.linspace-tf.linspace-1%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4-%EC%83%9D%EC%84%B1-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC&quot; data-og-url=&quot;https://velog.io/@jaylnne/python-np.linspace-tf.linspace-1차원-배열-생성-함수-정리&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/O4QOY/hyOhx2D06W/dKhKG5oOukVseoi3OfkXYK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/cMuIrd/hyOhwvTGOC/c3VrRNWpZ7Jod8KCxblwyK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/python-np.linspace-tf.linspace-1%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4-%EC%83%9D%EC%84%B1-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/python-np.linspace-tf.linspace-1%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4-%EC%83%9D%EC%84%B1-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/O4QOY/hyOhx2D06W/dKhKG5oOukVseoi3OfkXYK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/cMuIrd/hyOhwvTGOC/c3VrRNWpZ7Jod8KCxblwyK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[python] np.linspace(), tf.linspace() 1차원 배열 생성 함수 정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;보다시피 전자는 numpy 의 함수, 후자는 tensorflow 의 함수이다.linspace 는 Linear Space(선형 공간)의 줄임말 같다.모든 함수가 그렇듯 이름에서 그 기능이 유추된다.  두 개 함수 모두 1차원 배열을 생&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/Python</category>
      <category>1차원 배열</category>
      <category>np.linspace</category>
      <category>numpy</category>
      <category>Python</category>
      <category>tensorflow</category>
      <category>tf.linspace</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/26</guid>
      <comments>https://bbdata.tistory.com/26#entry26comment</comments>
      <pubDate>Sun, 27 Mar 2022 15:30:58 +0900</pubDate>
    </item>
    <item>
      <title>2022.03.20 _ 회고록을 쓰기로 결심한 이유</title>
      <link>https://bbdata.tistory.com/25</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;앞으로 종종 회고록을 써야겠다고 결심했다. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오류를 해결했던 방법이나, 새롭게 공부한 것을 요약정리한 내용이 아니라&lt;br /&gt;&lt;br /&gt;개발자로 성장해가며 느끼는 나의 솔직한 경험을.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;green-gd670d41aa_1920.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M7lno/btryg3Jku72/XoAhqJOAd4wLkOerUQM3VK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M7lno/btryg3Jku72/XoAhqJOAd4wLkOerUQM3VK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M7lno/btryg3Jku72/XoAhqJOAd4wLkOerUQM3VK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM7lno%2Fbtryg3Jku72%2FXoAhqJOAd4wLkOerUQM3VK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;731&quot; height=&quot;487&quot; data-filename=&quot;green-gd670d41aa_1920.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1280&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;이제야 내가 주니어 개발자가 된지 겨우 1년 반 정도 되었다는 사실을 불현듯이 깨달았다. 불과 1년 하고도 몇 개월이 넘었을 뿐. 그럼에도 지금의 내가 1년 전의 나와 같은 사람이라는 사실이 믿기지 않는다. ssh 포트 번호를 엉뚱하게 입력해두고선 개발 서버 접근이 되지 않는다며 선임들에게 도움을 요청하던 나는 어디로 간 것일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;입사한 시기와 꼭 맞물려서 회사가 급격한 변동을 겪었다. 12명 남짓했던 같은 팀 시니어 개발자들이 몇 개월 만에 모두 퇴사하고 팀장님까지도 예고없이 빠르게 이직을 하셨다. 입사한 지 1년도 채 지나지 않아 나는 팀에서 가장 연차가 오래된 개발자가 되었다. 그야말로 낙동강오리알 신세가 된 셈이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;회사는 학교가 아니다. 그래서 '저는 아직 모르는 것이 많은 주니어이기 때문에 그런 일은 할 수 없습니다.'라는 말은 할 수 없었다. 차라리 내가 할 수 있을 것 같은 업무를 먼저 찾아서 가져가자는 생각이 들었다. 이미 경험이 있는 사람처럼 능숙하지는 못해도, 남들보다 노력과 시간을 더 들여 공부한다면 어쩌면 나 혼자서라도 해낼 수 있을 것 같은 그런 일들을 말이다. (다행히 우리 회사의 새로운 CEO가 되신 대표님은 구성원들의 의견을 열린 마음으로 귀 기울여 들어주시는 분이셨다. 그 직원이 입사한 지 1년도 채 되지 않은 주니어 개발자라고 하더라도 말이다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;그렇게 지나간 1년이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;마치 계단을 오르는 기분이었다고 생각한다. 한 계단을 오르면 기다렸다는 듯 다시 한 계단이 나타나는 계단. 하지만 언제나 그래 왔듯 성취감과 보람, 그리고 거기서부터 오는 재미가 나를 포기하지 않고 계속해서 움직이게 해 주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;그래서 나는 1년 후의 내가 지금의 나와는 또 달라져 있을 것임을 믿는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1년 만에 무슨 천재 개발자라도 된 양 말하나 싶기도 하다. 하지만 하늘과 땅 차이처럼 느껴지는 지난 1년이, 개발자로서의 전체 인생을 놓고 보면 겨우 한 발짝 정도 걸었을 뿐이라는 사실을 알고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;그렇기 때문에 회고록을 써야겠다는 결론에 다다르게 된 것이다. 2023년, 2024년의 나는 지금보다 분명 더 성장해있을 테니까. 그 과정을 잊어버리고 싶지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;어느 정도의 빈도로 작성할 수 있을지는 모르겠다. 천천히 할 수 있는 만큼 해보면서 적당한 텀을 잡아가 보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;middot;&amp;middot;&amp;middot;&amp;middot;그럼 이번에도 늘 하는 마무리!&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;나 자신 화이팅  &lt;/p&gt;</description>
      <category>회고록</category>
      <category>개발자</category>
      <category>데이터사이언티스트</category>
      <category>회고록</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/25</guid>
      <comments>https://bbdata.tistory.com/25#entry25comment</comments>
      <pubDate>Sun, 20 Mar 2022 02:02:56 +0900</pubDate>
    </item>
    <item>
      <title>[MacOS] default 쉘 zsh 에서 bash 로 변경하기</title>
      <link>https://bbdata.tistory.com/24</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651807836525&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[bash/zsh] 쉘 변경하기&quot; data-og-description=&quot;MacOS 에 아직 익숙하지 않다. 터미널의 기본 쉘인 zsh 도 여전히 낯설어서 그냥 평소 자주 사용했던 bash 로 변경하고 싶었다. 마침 친절하게 안내 문구로 명령어를 알려주길래 'chsh -s /bin/bash' 을 실&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/bashzsh-%EC%89%98-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://velog.io/@jaylnne/bashzsh-쉘-변경하기&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hZ5qA/hyOhx9nWpo/VNJPeriC8DMbZQGTvOqrM0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/budphn/hyOhE8xKGh/203eI3u2oXok6EgftgnRJK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/bashzsh-%EC%89%98-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/bashzsh-%EC%89%98-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hZ5qA/hyOhx9nWpo/VNJPeriC8DMbZQGTvOqrM0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/budphn/hyOhE8xKGh/203eI3u2oXok6EgftgnRJK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[bash/zsh] 쉘 변경하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MacOS 에 아직 익숙하지 않다. 터미널의 기본 쉘인 zsh 도 여전히 낯설어서 그냥 평소 자주 사용했던 bash 로 변경하고 싶었다. 마침 친절하게 안내 문구로 명령어를 알려주길래 'chsh -s /bin/bash' 을 실&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/기타</category>
      <category>Bash</category>
      <category>chsh</category>
      <category>chsh -s /bin/bash</category>
      <category>mac terminal shell</category>
      <category>MacOS</category>
      <category>no changes made</category>
      <category>Shell</category>
      <category>zsh</category>
      <category>맥</category>
      <category>쉘</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/24</guid>
      <comments>https://bbdata.tistory.com/24#entry24comment</comments>
      <pubDate>Sat, 26 Feb 2022 20:04:31 +0900</pubDate>
    </item>
    <item>
      <title>[GitLab] git lfs 로 깃랩에서 모델 가중치 파일 관리하기</title>
      <link>https://bbdata.tistory.com/23</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651828030729&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GitLab] git lfs 로 깃랩에서 모델 가중치 파일 관리하기&quot; data-og-description=&quot;딥러닝 모델은 '모델 구조' + '가중치 파일' 2 개의 구성요소로 이루어져 있다고 볼 수 있습니다.모델 구조 = 껍데기, 가중치 파일 = 알맹이인 셈이고요. 당연히 뭐가 더 중요하다고는 할 수 없습니&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/GitLab-git-lfs-%EB%A1%9C-%EA%B9%83%EB%9E%A9%EC%97%90%EC%84%9C-%EB%AA%A8%EB%8D%B8-%EA%B0%80%EC%A4%91%EC%B9%98-%ED%8C%8C%EC%9D%BC-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://velog.io/@jaylnne/GitLab-git-lfs-로-깃랩에서-모델-가중치-파일-관리하기&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZi94k/hyOhxWbg8o/MyVHOD8yMizpf0dcAGJsfK/img.png?width=1024&amp;amp;height=576&amp;amp;face=0_0_1024_576,https://scrap.kakaocdn.net/dn/bMurzf/hyOje8wZK5/OTPohiKb4RmLAqbUBjcoKk/img.png?width=1024&amp;amp;height=576&amp;amp;face=0_0_1024_576,https://scrap.kakaocdn.net/dn/Xblqg/hyOjaSASmq/Bbp39hGP5JbGAc6d8fbyfK/img.png?width=997&amp;amp;height=245&amp;amp;face=0_0_997_245&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/GitLab-git-lfs-%EB%A1%9C-%EA%B9%83%EB%9E%A9%EC%97%90%EC%84%9C-%EB%AA%A8%EB%8D%B8-%EA%B0%80%EC%A4%91%EC%B9%98-%ED%8C%8C%EC%9D%BC-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/GitLab-git-lfs-%EB%A1%9C-%EA%B9%83%EB%9E%A9%EC%97%90%EC%84%9C-%EB%AA%A8%EB%8D%B8-%EA%B0%80%EC%A4%91%EC%B9%98-%ED%8C%8C%EC%9D%BC-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZi94k/hyOhxWbg8o/MyVHOD8yMizpf0dcAGJsfK/img.png?width=1024&amp;amp;height=576&amp;amp;face=0_0_1024_576,https://scrap.kakaocdn.net/dn/bMurzf/hyOje8wZK5/OTPohiKb4RmLAqbUBjcoKk/img.png?width=1024&amp;amp;height=576&amp;amp;face=0_0_1024_576,https://scrap.kakaocdn.net/dn/Xblqg/hyOjaSASmq/Bbp39hGP5JbGAc6d8fbyfK/img.png?width=997&amp;amp;height=245&amp;amp;face=0_0_997_245');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[GitLab] git lfs 로 깃랩에서 모델 가중치 파일 관리하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;딥러닝 모델은 '모델 구조' + '가중치 파일' 2 개의 구성요소로 이루어져 있다고 볼 수 있습니다.모델 구조 = 껍데기, 가중치 파일 = 알맹이인 셈이고요. 당연히 뭐가 더 중요하다고는 할 수 없습니&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/Git</category>
      <category>dl</category>
      <category>git</category>
      <category>git lfs</category>
      <category>GitLab</category>
      <category>깃랩</category>
      <category>깃랩 weight file</category>
      <category>깃랩 대용량</category>
      <category>깃랩 모델 가중치 파일</category>
      <category>깃랩 모델 파일</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/23</guid>
      <comments>https://bbdata.tistory.com/23#entry23comment</comments>
      <pubDate>Tue, 22 Feb 2022 17:56:51 +0900</pubDate>
    </item>
    <item>
      <title>[JMeter/Linux] 리눅스 환경에서 JMeter non GUI 모드로 사용하기</title>
      <link>https://bbdata.tistory.com/22</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요. 비버입니다. :D&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API 성능 테스트를 위한 툴 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;JMeter 를 리눅스 환경에서 non GUI 모드로 사용하는 방법&lt;/b&gt;&lt;/span&gt;에 대해 정리해두려고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 최근 회사의 새로운 서비스에 사용될 '문서 카테고리를 분류 모델'을 개발하였습니다. BentoML 을 활용하여 API 개발 &amp;amp; 도커라이징까지 완료했고, 연구용 서버에서 curl GET 요청으로 데이터 송수신 테스트까지 마친 상황이었죠. 저희 팀은 매주 한 번씩 대표님과 개발 실장님이 참석하시는 회의에서 지난 주간 동안 진행한 업무 내용을 보고드리는데요. 개발 실장님께서 제가 개발한 문서 분류 API의 성능 테스트가 필요할 것 같다고 하시며 JMeter 를 말씀하셨습니다. (API 성능 테스트를 위한 툴이 여럿 있는 것을 압니다. 하지만 이러한 이유로 저는 이번에 JMeter 를 사용하게 되었습니다.  )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용해본 적이 없었던 터라 구글링을 해보았는데, &lt;b&gt;윈도우 환경에서 GUI 모드로 사용하는 방법에 대해서는 설명해둔 글이 많았지만 non GUI 모드로 사용하는 방법에 대해 설명해둔 글은 많지 않았습니다.&lt;/b&gt; 때문에 우분투 OS 가 설치된 회사 서버를 사용해야 하는 저는 어쩔 수 없이 약간의 삽질을 거칠 수밖에 없었는데요. 다행히 어렵지 않게 해결하였지만, 혹 저와 같은 상황을 겪을 분들을 위해 내용을 정리합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;0. 시작하기 전에&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JMeter 를 non GUI 모드로 사용하더라도 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;테스트 실행에 필요한 jmx 파일은 JMeter GUI 창을 활용해 생성하는 것이 편리합니다.&lt;/b&gt;&lt;/span&gt; JMeter GUI 모드 사용 방법은 구글링을 하면 설명글이 많이 나오니, 원하는 글을 참고하셔서 JMeter GUI 실행 방법을 확인해주세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. JMeter 설치하기&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;figure id=&quot;og_1644317492138&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Apache JMeter
          -
          Apache JMeter&amp;trade;&quot; data-og-description=&quot;Apache JMeter&amp;trade; The Apache JMeter&amp;trade; application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth&quot; data-og-host=&quot;jmeter.apache.org&quot; data-og-source-url=&quot;https://jmeter.apache.org/&quot; data-og-url=&quot;https://jmeter.apache.org/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://jmeter.apache.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jmeter.apache.org/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Apache JMeter - Apache JMeter&amp;trade;&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Apache JMeter&amp;trade; The Apache JMeter&amp;trade; application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jmeter.apache.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크의 Download Releases 에서 Binaries 를 다운로드 받습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OS 종류에 따라 필요한 Binaries 를 선택해 다운 받으면 됩니다.&lt;/li&gt;
&lt;li&gt;Ubuntu 환경인 저의 경우는 .tgz 파일을 다운 받았습니다.&lt;/li&gt;
&lt;li&gt;wget 을 활용하세요. 편리합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1346&quot; data-origin-height=&quot;744&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cm95Wf/btrsSvLvIM8/Av6NE2jZGESPdHLOxXxzc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cm95Wf/btrsSvLvIM8/Av6NE2jZGESPdHLOxXxzc1/img.png&quot; data-alt=&quot;Download Releases &amp;amp;amp;amp;amp;amp;amp;gt; apache-jmeter-버전.tgz&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cm95Wf/btrsSvLvIM8/Av6NE2jZGESPdHLOxXxzc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcm95Wf%2FbtrsSvLvIM8%2FAv6NE2jZGESPdHLOxXxzc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;546&quot; height=&quot;302&quot; data-origin-width=&quot;1346&quot; data-origin-height=&quot;744&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Download Releases &amp;amp;amp;amp;amp;amp;gt; apache-jmeter-버전.tgz&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1644317743076&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd 다운로드를 원하는 디렉토리 경로

# 다운로드
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz

# 압축 풀기
tar -xvz apache-jmeter-5.4.3.tgz&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. jmx 파일 만들기&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;0. 시작하기 전에&lt;/span&gt;&lt;/b&gt;에서 언급했던 것처럼 jmx 파일을 생성하는 것은 JMeter GUI 창을 활용하는 것이 편리합니다. 윈도우 OS가 설치되어 있는 여분의 노트북 등을 활용하세요. (저는 윈도우 환경의 사무실 PC가 한 대 있었기 때문에 이를 활용했습니다.)&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-1. jmeter.bat 파일을 실행하여 JMeter GUI 창 열기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Untitled.png&quot; data-origin-width=&quot;1107&quot; data-origin-height=&quot;645&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qGlbU/btrsQpyvqJo/tI6ZIvfNK6c3kDnQSIx5Z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qGlbU/btrsQpyvqJo/tI6ZIvfNK6c3kDnQSIx5Z1/img.png&quot; data-alt=&quot;윈도우 PC 의 jmter.bat 파일 위치&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qGlbU/btrsQpyvqJo/tI6ZIvfNK6c3kDnQSIx5Z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqGlbU%2FbtrsQpyvqJo%2FtI6ZIvfNK6c3kDnQSIx5Z1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;675&quot; height=&quot;393&quot; data-filename=&quot;Untitled.png&quot; data-origin-width=&quot;1107&quot; data-origin-height=&quot;645&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;윈도우 PC 의 jmter.bat 파일 위치&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-2. Thread Group 추가&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;좌측 상단 TestPlan 우클릭 &amp;gt; Add &amp;gt; Threads (Users) &amp;gt; Thread Group&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGByfP/btrsO3WPDFr/RMjYbOu0tsnE7X5GMZcU81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGByfP/btrsO3WPDFr/RMjYbOu0tsnE7X5GMZcU81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGByfP/btrsO3WPDFr/RMjYbOu0tsnE7X5GMZcU81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGByfP%2FbtrsO3WPDFr%2FRMjYbOu0tsnE7X5GMZcU81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;566&quot; height=&quot;420&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Thread Group 이란?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JMeter 에서 Thread 란 곧 사용자(User)라고 생각하면 됩니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;따라서 Thread Group 이란, 우리가 API 를 테스트하기 위해 가상으로 생성할 '사용자 그룹' 을 뜻합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Thread Group 설정 세팅&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Number of Threads (users) : 몇 명의 동시 사용자를 설정할 것인지&lt;/li&gt;
&lt;li&gt;Ramp-up period (seconds) : 몇 초에 한 번씩 사용자들이 요청을 보내도록 할 것인지&lt;/li&gt;
&lt;li&gt;Loop Count : 사용자들이 요청을 몇 번 반복하여 보내도록 할 것인지&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uIL9p/btrsMA1TInp/Tp7a5lQ9pfMlMoomAOYdD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uIL9p/btrsMA1TInp/Tp7a5lQ9pfMlMoomAOYdD1/img.png&quot; data-alt=&quot;예시)&amp;amp;amp;amp;amp;nbsp; 10 명의 동시 사용자가&amp;amp;amp;amp;amp;nbsp; 1초 에 한 번씩 요청을 보내도록 하며, 이를&amp;amp;amp;amp;amp;nbsp; 10번 &amp;amp;amp;amp;amp;nbsp;반복하는 테스트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uIL9p/btrsMA1TInp/Tp7a5lQ9pfMlMoomAOYdD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuIL9p%2FbtrsMA1TInp%2FTp7a5lQ9pfMlMoomAOYdD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;261&quot; height=&quot;160&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;예시)&amp;amp;amp;amp;nbsp; 10 명의 동시 사용자가&amp;amp;amp;amp;nbsp; 1초 에 한 번씩 요청을 보내도록 하며, 이를&amp;amp;amp;amp;nbsp; 10번 &amp;amp;amp;amp;nbsp;반복하는 테스트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-3. &lt;b&gt;HTTP Request 추가&lt;/b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;어떤&lt;/u&gt; API 의, &lt;u&gt;어떤&lt;/u&gt;&amp;nbsp;주소에,&amp;nbsp;&lt;u&gt;어떻게&lt;/u&gt; 요청을 날릴 것인지 설정하는 곳입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;Thread Group 우클릭 &amp;gt; Add &amp;gt; Sampler &amp;gt; HTTP Request&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJTJv6/btrsMaCpZE8/cKCDjjBaho2FBxpfhESTo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJTJv6/btrsMaCpZE8/cKCDjjBaho2FBxpfhESTo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJTJv6/btrsMaCpZE8/cKCDjjBaho2FBxpfhESTo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJTJv6%2FbtrsMaCpZE8%2FcKCDjjBaho2FBxpfhESTo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;430&quot; height=&quot;426&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;554&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP Request 설정 세팅&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Protocol : http (또는 https)&lt;/li&gt;
&lt;li&gt;Server Name or IP : 서버 도메인명 또는 IP 주소&lt;/li&gt;
&lt;li&gt;Port Number : 포트 번호&lt;/li&gt;
&lt;li&gt;Method : Parameter 를 받아오는 방식 (Default 는 Get)&lt;/li&gt;
&lt;li&gt;Path : 페이지의 주소 (ex. /predict)&lt;/li&gt;
&lt;li&gt;Body Data : 전송할 입력 데이터&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-4. HTTP Header Manager 추가&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;HTTP Request 우클릭 &amp;gt; Add &amp;gt; Config Element &amp;gt; HTTP Header Manager&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;761&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX3gxe/btrsSbs2Myy/yr1K1rrfw8kVcOnGfOjeJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX3gxe/btrsSbs2Myy/yr1K1rrfw8kVcOnGfOjeJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX3gxe/btrsSbs2Myy/yr1K1rrfw8kVcOnGfOjeJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX3gxe%2FbtrsSbs2Myy%2Fyr1K1rrfw8kVcOnGfOjeJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;517&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;761&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 이미지와 같이 Content-Type, Content-Encoding 등 HTTP 요청 헤더 정보를 입력하세요. (아래 부분에 Add 버튼이 있습니다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1915&quot; data-origin-height=&quot;1018&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdGOZo/btrsS9BsEOi/H96GcP4GXSqVkeFOPwIYm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdGOZo/btrsS9BsEOi/H96GcP4GXSqVkeFOPwIYm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdGOZo/btrsS9BsEOi/H96GcP4GXSqVkeFOPwIYm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdGOZo%2FbtrsS9BsEOi%2FH96GcP4GXSqVkeFOPwIYm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1915&quot; height=&quot;1018&quot; data-origin-width=&quot;1915&quot; data-origin-height=&quot;1018&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-5. jmx 파일로 저장하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;File &amp;gt; Save Test Plan as&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EAxWw/btrsMBfokVb/N4UNDqoKP2X2PfhBpe7MMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EAxWw/btrsMBfokVb/N4UNDqoKP2X2PfhBpe7MMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EAxWw/btrsMBfokVb/N4UNDqoKP2X2PfhBpe7MMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEAxWw%2FbtrsMBfokVb%2FN4UNDqoKP2X2PfhBpe7MMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;312&quot; height=&quot;262&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장한 jmx 파일은 리눅스 환경 PC 로 옮겨주세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 리눅스 환경에서 JMeter 실행&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1644323138776&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Jmeter 실행 파일이 있는 경로로 이동
cd ~/apache-jmeter-5.4.3/bin

# jmeter 실행
./jmeter -n -t &amp;lt;파일명&amp;gt;.jmx -l &amp;lt;로그파일명&amp;gt;.log

# 사용예시
./jmeter -n -t my_test.jmx -l my_test_result.log&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;옵션 설명&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;-n : non GUI 모드&lt;/li&gt;
&lt;li&gt;-t : 우리가 생성한 jmx 파일 경로&lt;/li&gt;
&lt;li&gt;-l : 테스트 결과를 기록할 로그 파일 경로&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트가 완료된 후 log 파일을 확인하면 테스트의 결과를 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;축하합니다. 짝짝짝!  &lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오늘도 도움이 되셨다면 아래 공감 버튼을 꾹! 부탁드립니다.  &lt;br /&gt;제 기분이 좋아지니까요.&lt;br /&gt;감사합니다!&lt;/blockquote&gt;</description>
      <category>TIL/기타</category>
      <category>AI Model API test</category>
      <category>api test</category>
      <category>API성능테스트</category>
      <category>Deep Learning</category>
      <category>jmeter</category>
      <category>JMeter non GUI</category>
      <category>JMX</category>
      <category>Linux</category>
      <category>Machine Learning</category>
      <category>ubuntu</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/22</guid>
      <comments>https://bbdata.tistory.com/22#entry22comment</comments>
      <pubDate>Tue, 8 Feb 2022 21:33:51 +0900</pubDate>
    </item>
    <item>
      <title>[kafka/python] 에러 해결! import KafkaConsumer &amp;quot;cannot import name 'IncompatibleBrokerVersion' from 'kafka.errors'&amp;quot;</title>
      <link>https://bbdata.tistory.com/21</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651807665053&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[kafka/python] 에러 해결! import KafkaConsumer &amp;quot;cannot import name 'IncompatibleBrokerVersion' from 'kafka.errors'&amp;quot;&quot; data-og-description=&quot;파이썬에서 kafka 패키지의 KafkaConsumer 를 임포트 할 수 없다.pip install kafka 로 kafka 를 설치했더니 원인을 알 수 없는 syntax 에러가 발생했었다.때문에 pip install -U kafka-python 로 카프카 패키지를 재&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/kafkapython-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-import-KafkaConsumer-cannot-import-name-IncompatibleBrokerVersion-from-kafka.errors&quot; data-og-url=&quot;https://velog.io/@jaylnne/kafkapython-에러-해결-import-KafkaConsumer-cannot-import-name-IncompatibleBrokerVersion-from-kafka.errors&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/TP3pw/hyOhyAtbvo/gKIK8o881i4cHJkkqkhRhK/img.png?width=1166&amp;amp;height=464&amp;amp;face=0_0_1166_464,https://scrap.kakaocdn.net/dn/tf7SV/hyOhrBkfqX/X8E2qWwngfkm04JmzeRsN0/img.png?width=1166&amp;amp;height=464&amp;amp;face=0_0_1166_464,https://scrap.kakaocdn.net/dn/bTTv36/hyOhvX3THi/VOEKJRYcvQkHca0zdNGB61/img.png?width=1166&amp;amp;height=464&amp;amp;face=0_0_1166_464&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/kafkapython-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-import-KafkaConsumer-cannot-import-name-IncompatibleBrokerVersion-from-kafka.errors&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/kafkapython-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-import-KafkaConsumer-cannot-import-name-IncompatibleBrokerVersion-from-kafka.errors&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/TP3pw/hyOhyAtbvo/gKIK8o881i4cHJkkqkhRhK/img.png?width=1166&amp;amp;height=464&amp;amp;face=0_0_1166_464,https://scrap.kakaocdn.net/dn/tf7SV/hyOhrBkfqX/X8E2qWwngfkm04JmzeRsN0/img.png?width=1166&amp;amp;height=464&amp;amp;face=0_0_1166_464,https://scrap.kakaocdn.net/dn/bTTv36/hyOhvX3THi/VOEKJRYcvQkHca0zdNGB61/img.png?width=1166&amp;amp;height=464&amp;amp;face=0_0_1166_464');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[kafka/python] 에러 해결! import KafkaConsumer &quot;cannot import name 'IncompatibleBrokerVersion' from 'kafka.errors'&quot;&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;파이썬에서 kafka 패키지의 KafkaConsumer 를 임포트 할 수 없다.pip install kafka 로 kafka 를 설치했더니 원인을 알 수 없는 syntax 에러가 발생했었다.때문에 pip install -U kafka-python 로 카프카 패키지를 재&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/개발 오류 일지</category>
      <category>from kafka import KafkaConsumer</category>
      <category>Kafka</category>
      <category>kafka-python</category>
      <category>kafka.errors</category>
      <category>kafkaconsumer</category>
      <category>카프카</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/21</guid>
      <comments>https://bbdata.tistory.com/21#entry21comment</comments>
      <pubDate>Tue, 23 Nov 2021 17:22:57 +0900</pubDate>
    </item>
    <item>
      <title>[Linux] 좀비 프로세스 &amp;lt;defunct&amp;gt; 죽이기 간단 정리!</title>
      <link>https://bbdata.tistory.com/20</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651807427706&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Linux] 좀비 프로세스 &amp;lt;defunct&amp;gt; 죽이기 간단 정리!&quot; data-og-description=&quot;GPU에 올린 train 작업을 종료하기 위해 nvidia-smi에서 확인된 PID 를 kill 했다. 그런데 해당 프로세스에 묶인 GPU 메모리가 free 되지 않는다. 모델과 데이터가 여전히 디바이스에 올라가 있다는 뜻이다&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/Linux-%EC%A2%80%EB%B9%84-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-defunct-%EC%A3%BD%EC%9D%B4%EA%B8%B0-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC&quot; data-og-url=&quot;https://velog.io/@jaylnne/Linux-좀비-프로세스-defunct-죽이기-간단-정리&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfczfY/hyOhAZkuzI/kwE0KXkyIkp0nq9xFfZqE1/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/RmeIc/hyOhEtT18O/QK47gVrg2RwmNX4De1hdq0/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/Linux-%EC%A2%80%EB%B9%84-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-defunct-%EC%A3%BD%EC%9D%B4%EA%B8%B0-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/Linux-%EC%A2%80%EB%B9%84-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-defunct-%EC%A3%BD%EC%9D%B4%EA%B8%B0-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfczfY/hyOhAZkuzI/kwE0KXkyIkp0nq9xFfZqE1/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/RmeIc/hyOhEtT18O/QK47gVrg2RwmNX4De1hdq0/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Linux] 좀비 프로세스 &amp;lt;defunct&amp;gt; 죽이기 간단 정리!&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GPU에 올린 train 작업을 종료하기 위해 nvidia-smi에서 확인된 PID 를 kill 했다. 그런데 해당 프로세스에 묶인 GPU 메모리가 free 되지 않는다. 모델과 데이터가 여전히 디바이스에 올라가 있다는 뜻이다&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/Linux</category>
      <category>defunct</category>
      <category>Kill process</category>
      <category>Linux</category>
      <category>python train.py</category>
      <category>train.sh</category>
      <category>부모프로세스</category>
      <category>좀비프로세스</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/20</guid>
      <comments>https://bbdata.tistory.com/20#entry20comment</comments>
      <pubDate>Mon, 15 Nov 2021 09:51:23 +0900</pubDate>
    </item>
    <item>
      <title>Contact</title>
      <link>https://bbdata.tistory.com/19</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요. 비버입니다! :D&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제 블로그와 관련하여 문의 혹은 연락할 일이 있으면 아래 이메일 주소로 연락해 주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;  rue7862@gmail.com&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Contact</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/19</guid>
      <comments>https://bbdata.tistory.com/19#entry19comment</comments>
      <pubDate>Thu, 2 Sep 2021 19:02:23 +0900</pubDate>
    </item>
    <item>
      <title>[머신러닝] 앙상블 (Ensemble) 은 항상 모델의 성능을 향상시킬까?</title>
      <link>https://bbdata.tistory.com/18</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651808841463&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[머신러닝] 앙상블 (Ensemble) 은 항상 모델의 성능을 향상시킬까?&quot; data-og-description=&quot;Hi! I'm Jaylnne ✋&amp;nbsp;저는 최근에 검색어(=쿼리 키워드) 분류 모델을 개발하고 있습니다. 저와 연구소 팀원 한 분(총 2명)이서 데이터 수집부터 개발까지 1~2개월간 진행한 프로젝트였습니다. 상당히 &quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%95%99%EC%83%81%EB%B8%94-Ensemble-%EC%9D%80-%ED%95%AD%EC%83%81-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%ED%96%A5%EC%83%81%EC%8B%9C%ED%82%AC%EA%B9%8C&quot; data-og-url=&quot;https://velog.io/@jaylnne/머신러닝-앙상블-Ensemble-은-항상-모델의-성능을-향상시킬까&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bBKKtZ/hyOhxavGwp/Bhl5qZbT7sEkZRjxKVAhqK/img.jpg?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540,https://scrap.kakaocdn.net/dn/D5rVZ/hyOhuZa4ur/Fgz6zb6IaQxKIm7N5kDJk0/img.jpg?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540,https://scrap.kakaocdn.net/dn/fTsUm/hyOhAZmu4C/EsO7PGDPDijlCQNKmbtfyk/img.jpg?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%95%99%EC%83%81%EB%B8%94-Ensemble-%EC%9D%80-%ED%95%AD%EC%83%81-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%ED%96%A5%EC%83%81%EC%8B%9C%ED%82%AC%EA%B9%8C&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%95%99%EC%83%81%EB%B8%94-Ensemble-%EC%9D%80-%ED%95%AD%EC%83%81-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%ED%96%A5%EC%83%81%EC%8B%9C%ED%82%AC%EA%B9%8C&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bBKKtZ/hyOhxavGwp/Bhl5qZbT7sEkZRjxKVAhqK/img.jpg?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540,https://scrap.kakaocdn.net/dn/D5rVZ/hyOhuZa4ur/Fgz6zb6IaQxKIm7N5kDJk0/img.jpg?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540,https://scrap.kakaocdn.net/dn/fTsUm/hyOhAZmu4C/EsO7PGDPDijlCQNKmbtfyk/img.jpg?width=960&amp;amp;height=540&amp;amp;face=0_0_960_540');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[머신러닝] 앙상블 (Ensemble) 은 항상 모델의 성능을 향상시킬까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Hi! I'm Jaylnne ✋&amp;nbsp;저는 최근에 검색어(=쿼리 키워드) 분류 모델을 개발하고 있습니다. 저와 연구소 팀원 한 분(총 2명)이서 데이터 수집부터 개발까지 1~2개월간 진행한 프로젝트였습니다. 상당히&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ML&amp;amp;DL/ML&amp;amp;DL 공통</category>
      <category>ensemble</category>
      <category>soft voting</category>
      <category>데이터 사이언스</category>
      <category>머신러닝</category>
      <category>모델 성능 향상</category>
      <category>보팅</category>
      <category>분류모델</category>
      <category>소프트보팅</category>
      <category>앙상블</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/18</guid>
      <comments>https://bbdata.tistory.com/18#entry18comment</comments>
      <pubDate>Thu, 2 Sep 2021 18:28:00 +0900</pubDate>
    </item>
    <item>
      <title>[NLP] BertAdam optimizer 의 개념 &amp;amp; Adam 과의 차이점 정리!</title>
      <link>https://bbdata.tistory.com/17</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651809576241&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[NLP] BertAdam optimizer 의 개념 &amp;amp; Adam 과의 차이점 정리!&quot; data-og-description=&quot;Hi! I'm Jaylnne. ✋오늘은 BERT 모델을 공부하던 중&amp;nbsp;BERTAdam이라는 독특한 옵티마이저(optimizer)를 접하게 되어서 이것에 대해 정리해보고자 글을 써보기로 했습니다.아래 huggingface 깃헙 링크에 BERTAdam &quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/NLP-BertAdam-optimizer-%EC%9D%98-%EA%B0%9C%EB%85%90-Adam-%EA%B3%BC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%A0%95%EB%A6%AC&quot; data-og-url=&quot;https://velog.io/@jaylnne/NLP-BertAdam-optimizer-의-개념-Adam-과의-차이점-정리&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qGB4R/hyOhqbpfYK/KwEWL9LYZXlMNisdvUWBr0/img.png?width=887&amp;amp;height=374&amp;amp;face=0_0_887_374,https://scrap.kakaocdn.net/dn/cp6Y44/hyOhpDyiar/6Y3CJM2Dy6iivAiFyUcad0/img.png?width=887&amp;amp;height=374&amp;amp;face=0_0_887_374,https://scrap.kakaocdn.net/dn/tATqc/hyOhqP0KLk/BWerGepQELrBikk0oplvT1/img.png?width=887&amp;amp;height=374&amp;amp;face=0_0_887_374&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/NLP-BertAdam-optimizer-%EC%9D%98-%EA%B0%9C%EB%85%90-Adam-%EA%B3%BC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/NLP-BertAdam-optimizer-%EC%9D%98-%EA%B0%9C%EB%85%90-Adam-%EA%B3%BC%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%A0%95%EB%A6%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qGB4R/hyOhqbpfYK/KwEWL9LYZXlMNisdvUWBr0/img.png?width=887&amp;amp;height=374&amp;amp;face=0_0_887_374,https://scrap.kakaocdn.net/dn/cp6Y44/hyOhpDyiar/6Y3CJM2Dy6iivAiFyUcad0/img.png?width=887&amp;amp;height=374&amp;amp;face=0_0_887_374,https://scrap.kakaocdn.net/dn/tATqc/hyOhqP0KLk/BWerGepQELrBikk0oplvT1/img.png?width=887&amp;amp;height=374&amp;amp;face=0_0_887_374');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[NLP] BertAdam optimizer 의 개념 &amp;amp; Adam 과의 차이점 정리!&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Hi! I'm Jaylnne. ✋오늘은 BERT 모델을 공부하던 중&amp;nbsp;BERTAdam이라는 독특한 옵티마이저(optimizer)를 접하게 되어서 이것에 대해 정리해보고자 글을 써보기로 했습니다.아래 huggingface 깃헙 링크에 BERTAdam&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ML&amp;amp;DL/NLP</category>
      <category>Adam</category>
      <category>Bert</category>
      <category>BERTAdam</category>
      <category>L2 regularization</category>
      <category>nlp</category>
      <category>Optimizer</category>
      <category>Weight Decay</category>
      <category>딥러닝</category>
      <category>옵티마이저</category>
      <category>자연어처리</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/17</guid>
      <comments>https://bbdata.tistory.com/17#entry17comment</comments>
      <pubDate>Thu, 8 Jul 2021 15:42:18 +0900</pubDate>
    </item>
    <item>
      <title>[python] 파이썬 ravel() 배열 1차원 변경 메소드 정리</title>
      <link>https://bbdata.tistory.com/16</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651807181929&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[python] 파이썬 ravel() 배열 1차원 변경 메소드 정리&quot; data-og-description=&quot;.ravel() 과 .flatten() 의 기능이 비슷해 아래와 같이 정리했다.다차원 배열(array)을 1차원 배열(array)로 평평하게 펴주는 넘파이(numpy) 함수1차원 배열을 다차원 배열로 바꾸는 .reshape()과 반대의 기능&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-ravel-%EB%B0%B0%EC%97%B4-1%EC%B0%A8%EC%9B%90-%EB%B3%80%EA%B2%BD-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot; data-og-url=&quot;https://velog.io/@jaylnne/python-파이썬-ravel-배열-1차원-변경-메소드-정리&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/biiuKY/hyOhBYfd6C/OdjP7Mexe1AYdilHCPKdf0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/3AVmQ/hyOhAdYua9/TaXWz9ULtZWwwK25gbWKK1/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-ravel-%EB%B0%B0%EC%97%B4-1%EC%B0%A8%EC%9B%90-%EB%B3%80%EA%B2%BD-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-ravel-%EB%B0%B0%EC%97%B4-1%EC%B0%A8%EC%9B%90-%EB%B3%80%EA%B2%BD-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/biiuKY/hyOhBYfd6C/OdjP7Mexe1AYdilHCPKdf0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/3AVmQ/hyOhAdYua9/TaXWz9ULtZWwwK25gbWKK1/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[python] 파이썬 ravel() 배열 1차원 변경 메소드 정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;.ravel() 과 .flatten() 의 기능이 비슷해 아래와 같이 정리했다.다차원 배열(array)을 1차원 배열(array)로 평평하게 펴주는 넘파이(numpy) 함수1차원 배열을 다차원 배열로 바꾸는 .reshape()과 반대의 기능&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/Python</category>
      <category>1차원변환</category>
      <category>flatten()</category>
      <category>numpy</category>
      <category>Pandas</category>
      <category>Python</category>
      <category>ravel()</category>
      <category>넘파이</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/16</guid>
      <comments>https://bbdata.tistory.com/16#entry16comment</comments>
      <pubDate>Fri, 23 Apr 2021 22:36:50 +0900</pubDate>
    </item>
    <item>
      <title>[python] 파이썬 str.maketrans() 문자열 치환 메소드 정리</title>
      <link>https://bbdata.tistory.com/15</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651807000804&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[python] 파이썬 str.maketrans() 문자열 치환 메소드 정리&quot; data-og-description=&quot;문자열을 치환할 때 사용하는 매핑 변환 테이블을 만들 때 사용한다.가장 간단하게 이용하는 방식은 intab, outtab 두 옵션 값에 문자열 형태로 입력해주는 것이다. 숫자도 가능하다.단, intab이 outtab&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-str.maketrans-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%B9%98%ED%99%98-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot; data-og-url=&quot;https://velog.io/@jaylnne/python-파이썬-str.maketrans-문자열-치환-메소드-정리&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cDzXdE/hyOhz7dkSU/6ex7SWqyk5mzPz3yvDsPN0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/lNb6T/hyOhtlBylq/KfVPuerwJawo8iPBE95qVK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-str.maketrans-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%B9%98%ED%99%98-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-str.maketrans-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%B9%98%ED%99%98-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cDzXdE/hyOhz7dkSU/6ex7SWqyk5mzPz3yvDsPN0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/lNb6T/hyOhtlBylq/KfVPuerwJawo8iPBE95qVK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[python] 파이썬 str.maketrans() 문자열 치환 메소드 정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문자열을 치환할 때 사용하는 매핑 변환 테이블을 만들 때 사용한다.가장 간단하게 이용하는 방식은 intab, outtab 두 옵션 값에 문자열 형태로 입력해주는 것이다. 숫자도 가능하다.단, intab이 outtab&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/Python</category>
      <category>maketrans()</category>
      <category>Python</category>
      <category>til</category>
      <category>코드</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/15</guid>
      <comments>https://bbdata.tistory.com/15#entry15comment</comments>
      <pubDate>Mon, 19 Apr 2021 13:25:54 +0900</pubDate>
    </item>
    <item>
      <title>[python] 파이썬 dict.fromkeys() 딕셔너리 생성 메소드 정리</title>
      <link>https://bbdata.tistory.com/14</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;Velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;figure id=&quot;og_1651805003338&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[python] 파이썬 dict.fromkeys() 딕셔너리 생성 메소드 정리&quot; data-og-description=&quot;딕셔너리를 생성할 때 편리하게 사용할 수 있는 메소드. seq 옵션 값에 문자열을 입력할 수도 있다.seq: 생성하려는 dictionary의 키(key)의 목록value: 생성하려는 dictionary의 값(value)&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-dict.fromkeys-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%EC%83%9D%EC%84%B1-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot; data-og-url=&quot;https://velog.io/@jaylnne/python-파이썬-dict.fromkeys-딕셔너리-생성-메소드-정리&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c8kPbD/hyOhs73l15/WMJWuuunO9G4huLEo14bTK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/ev1mXc/hyOhsfUtek/AVzUAEX8u3YfXDDF87SdhK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-dict.fromkeys-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%EC%83%9D%EC%84%B1-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-dict.fromkeys-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%EC%83%9D%EC%84%B1-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c8kPbD/hyOhs73l15/WMJWuuunO9G4huLEo14bTK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/ev1mXc/hyOhsfUtek/AVzUAEX8u3YfXDDF87SdhK/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[python] 파이썬 dict.fromkeys() 딕셔너리 생성 메소드 정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;딕셔너리를 생성할 때 편리하게 사용할 수 있는 메소드. seq 옵션 값에 문자열을 입력할 수도 있다.seq: 생성하려는 dictionary의 키(key)의 목록value: 생성하려는 dictionary의 값(value)&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/Python</category>
      <category>dict.fromkeys()</category>
      <category>Python</category>
      <category>딕셔너리</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/14</guid>
      <comments>https://bbdata.tistory.com/14#entry14comment</comments>
      <pubDate>Mon, 19 Apr 2021 13:08:19 +0900</pubDate>
    </item>
    <item>
      <title>[python] 파이썬 upper(), lower(), isupper(), islower() 함수</title>
      <link>https://bbdata.tistory.com/12</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;velog 로 글을 옮겼습니다!  &lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1651806831850&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[python] 파이썬 upper(), lower(), isupper(), islower() 함수&quot; data-og-description=&quot;1\. str.upper(): 문자열을 대문자로 변경2\. str.lower(): 문자열을 소문자로 변경3\. str.isupper(): 문자열이 대문자인지 확인4\. str.islower(): 문자열이 소문자인지 확인&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-upper-lower-isupper-islower-%ED%95%A8%EC%88%98&quot; data-og-url=&quot;https://velog.io/@jaylnne/python-파이썬-upper-lower-isupper-islower-함수&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bCrlL3/hyOhDPiaQp/KrXVB8HPMgNsRltUGDyGiK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/dDpbJr/hyOhwQatwH/Kdmbm9c46OK8Iee2Be9Enk/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450,https://scrap.kakaocdn.net/dn/fPYqq/hyOhruzEgX/k68xkMkIU2C4XiP0ZoWCBK/img.png?width=280&amp;amp;height=549&amp;amp;face=0_0_280_549&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-upper-lower-isupper-islower-%ED%95%A8%EC%88%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-upper-lower-isupper-islower-%ED%95%A8%EC%88%98&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bCrlL3/hyOhDPiaQp/KrXVB8HPMgNsRltUGDyGiK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/dDpbJr/hyOhwQatwH/Kdmbm9c46OK8Iee2Be9Enk/img.jpg?width=450&amp;amp;height=450&amp;amp;face=0_0_450_450,https://scrap.kakaocdn.net/dn/fPYqq/hyOhruzEgX/k68xkMkIU2C4XiP0ZoWCBK/img.png?width=280&amp;amp;height=549&amp;amp;face=0_0_280_549');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[python] 파이썬 upper(), lower(), isupper(), islower() 함수&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1\. str.upper(): 문자열을 대문자로 변경2\. str.lower(): 문자열을 소문자로 변경3\. str.isupper(): 문자열이 대문자인지 확인4\. str.islower(): 문자열이 소문자인지 확인&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL/Python</category>
      <category>.lower()</category>
      <category>.upper()</category>
      <category>문자열</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/12</guid>
      <comments>https://bbdata.tistory.com/12#entry12comment</comments>
      <pubDate>Mon, 5 Apr 2021 13:30:22 +0900</pubDate>
    </item>
    <item>
      <title>[python] 파이썬 집합 관련 자료형 set(), frozenset() 함수</title>
      <link>https://bbdata.tistory.com/11</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;파이썬의 자료형 종류&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 시퀀스 타입 (sequence type): 저장된 값의 순서 정보가 있고, 중복된 값을 허용한다. ex) list, tuple, range, str&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 매핑 타입 (mapping type): 순서 정보가 포함되는 것이 본질은 아니나, 파이썬 3.7 이상부터는 dict 도 순서 정보를 유지한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 셋 타입 (set type): 저장된 값의 순서 정보가 없고, 중복된 값을 허용하지 않는다. 수학의 집합과 비슷하다. ex) set, frozenset&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;set(), frozenset() 차이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;frozenset과 set은 거의 모든 문법과 기능이 동일&lt;/span&gt;하다. 단, frozenset은 그 이름에서도 짐작할 수 있듯이 할당된 집합의 값을 그 상태 그대로 '얼려'서 저장한다. 즉, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;수정이 불가&lt;/span&gt;한 객체이다. (immutable)&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1617252487477&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;s = {1, 2, 3, 4}
fs = frozenset([1, 2, 3, 4])

s.add(5)
#  fs.add(5) 불가능
s.discard(5)
#  fs.discard(5) 불가능

s.update({5, 6, 7})
#  fs.update({5,6,7}) 불가능&lt;/code&gt;&lt;/pre&gt;</description>
      <category>TIL/Python</category>
      <category>frozenset</category>
      <category>Python</category>
      <category>set</category>
      <category>til</category>
      <category>자료형</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/11</guid>
      <comments>https://bbdata.tistory.com/11#entry11comment</comments>
      <pubDate>Thu, 1 Apr 2021 13:44:57 +0900</pubDate>
    </item>
    <item>
      <title>[머신러닝 기초] K겹 교차 검증(K-fold cross validation) 이란? 초보자를 위한 쉽고 간단한 정리!</title>
      <link>https://bbdata.tistory.com/10</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요. 비버입니다!  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새롭고 어려운 지식을 많이 아는 것도 좋지만 기본기를 단단히 다지는 일도 못지않게 중요하다고 생각합니다. 그래서 저는 시간이 날 때마다 틈틈이 내가 알고 있다고 생각했던 기본 개념들을 하나씩 짚어보며 복습하고는 하는데요. 개념을 처음 접하는 초보자분들도 쉽게 이해하실 수 있었으면 해서, 쉽게 풀어 정리해볼까 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;K겹 교차 검증&lt;/b&gt;&lt;/span&gt;에 대해 복습하고, 정리해두도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. K겹 교차 검증의 출발&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;&quot;왜 K겹 교차 검증을 생각해내게 되었을까?&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 이 개념을 배울 때는 'K겹'이라는 단어를 보고서는 얇은 반죽이 켜켜이 겹쳐져 있는 페스츄리 빵을 떠올릴 뿐이었습니다. 하하. 무엇을 어떻게 왜 겹겹이 교차해서 검증하겠다는 건지, 이름만으로는 전혀 감이 잡히질 않았죠.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신 러닝 모델을 학습시킬 때 우리는 주로 데이터를 '학습 데이터'와 '테스트 데이터'로 나누어 작업합니다. 그렇죠? 테스트 데이터는 모델을 학습시킬 때는 사용하지 않고, 과적합을 방지하면서 모델이 잘 학습되었는지 테스트해보기 위해 사용합니다. 하지만 이 말은 즉, 학습 데이터로 사용한 데이터는 모델 테스트 과정에선 전혀 사용되지 않는다는 뜻이기도 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;468&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u0Xaj/btqZpU7jLxx/egFYJBYVjADdykpyMISz61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u0Xaj/btqZpU7jLxx/egFYJBYVjADdykpyMISz61/img.png&quot; data-alt=&quot;학습 데이터와 테스트 데이터 일반적 비율 한눈에 보기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u0Xaj/btqZpU7jLxx/egFYJBYVjADdykpyMISz61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu0Xaj%2FbtqZpU7jLxx%2FegFYJBYVjADdykpyMISz61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;414&quot; height=&quot;183&quot; data-origin-width=&quot;468&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;학습 데이터와 테스트 데이터 일반적 비율 한눈에 보기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습 데이터와 테스트 데이터의 비율을 보통 7:3으로 나눈다는 것을 생각해보면 아깝습니다. 70% 데이터를 모델 테스트 과정에서도 사용할 방법이 있다면 좋겠죠! (물론 현업에서는 데이터에 따라 7:3이 아닌 다른 비율로 나누는 경우도 많습니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 K겹 교차 검증이라는 개념이 생겨나게 된 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. K겹 교차 검증 (K-fold cross validation) 의 의미&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 K겹 교차 검증이 뭔데? 어떻게 전체 데이터셋을 모델 테스트에 활용할 수 있게 하는 건데?라는 생각이 듭니다. 이제 본격적으로 개념의 의미에 대해 알아보아요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;&quot;집합을 체계적으로 바꿔가면서 모든 데이터에 대해 모형의 성과를 측정하는 검증 방식&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 말은 K겹 교차 검증의 간단한 정의입니다. 하지만 대부분의 사전적 정의가 그렇듯 초보자는 무슨 말인지 이해할 수가 없습니다. (삑- 정상입니다. 괜찮습니다.) 그러니 우리는 차근차근 하나씩 떼어 이해해 봅시다!&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-1. 'K겹'&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 &lt;u&gt;'K겹' 이 가리키는 의미는 전체 데이터셋을 K개의 부분집합으로 나눈다는 것&lt;/u&gt;입니다. 별거 아닙니다. 그냥 아래 그림을 보세요!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czNGlY/btqZkrrOrAG/X0J86LXoKNGxkWvs9QU5rK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czNGlY/btqZkrrOrAG/X0J86LXoKNGxkWvs9QU5rK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czNGlY/btqZkrrOrAG/X0J86LXoKNGxkWvs9QU5rK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczNGlY%2FbtqZkrrOrAG%2FX0J86LXoKNGxkWvs9QU5rK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1151&quot; height=&quot;282&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 k개로 나눈 부분집합 데이터를 fold 라고 부른답니다. 앞에 숫자만 붙여 불러주면 되겠네요. 1번 fold, 2번 fold, 3번 fold &amp;middot;&amp;middot;&amp;middot;&amp;middot;&amp;middot;&amp;middot; k번 fold, 이렇게요. 앞서 말씀드린&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&quot;&lt;i&gt;집합을 체계적으로 바꿔가면서 모든 데이터에 대해 모형의 성과를 측정하는 검증 방식&quot; &lt;/i&gt;정의에서 '집합'이 무엇을 의미하는지 이제 알겠네요.&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-2. 교차&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;'K겹'이 무슨 말인지 알았으니 다음 단어를 봅시다. 무엇을 '교차' 한다는 뜻일까요? 이번에도 그림으로 이해하는 게 훨씬 쉽습니다. 아래를 보세요.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;298&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/riP4b/btqZlQyFueH/OJ1lk0AyTpEWlVMEbS0L01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/riP4b/btqZlQyFueH/OJ1lk0AyTpEWlVMEbS0L01/img.png&quot; data-alt=&quot;주황색 칸: 학습 데이터, 하얀색 칸: 테스트 데이터&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/riP4b/btqZlQyFueH/OJ1lk0AyTpEWlVMEbS0L01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FriP4b%2FbtqZlQyFueH%2FOJ1lk0AyTpEWlVMEbS0L01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;381&quot; height=&quot;298&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;298&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;주황색 칸: 학습 데이터, 하얀색 칸: 테스트 데이터&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;k개로 나눈 데이터셋의 부분집합들 (더 쉽게 말하자면, 위 그림에서 막대기들의 칸 한 칸씩이요)을 1번 fold, 2번 fold &amp;middot;&amp;middot;&amp;middot;&amp;middot;&amp;middot;&amp;middot; 이렇게 부른다고 했죠. 바로 그 &lt;u&gt;fold 들을 차례대로 교차해 테스트 데이터로 사용한다는 말입니다.&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예시로 보여드린 그림의 맨 위 작대기를 보세요. 아하. 그러니까 예시에서는 첫 번째 모델 학습에서는 5번 fold를 테스트 데이터로 사용한다고 것으로 이해할 수 있겠네요. 맨 마지막 다섯 번째 fold 가 하얀색이니까요. 그리고 다음 모델 학습에서는 4번 fold가 테스트 데이터이고, 그다음엔 3번 fold &amp;middot;&amp;middot;&amp;middot;&amp;middot;&amp;middot; 이런 식으로 이어지면서 마지막 다섯 번째 모델 학습까지- 차례대로 fold가 테스트 데이터로 교차되어 사용되고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;&lt;i&gt;집합을 체계적으로 바꿔가면서 모든 데이터에 대해 모형의 성과를 측정하는 검증 방식&quot; &lt;/i&gt;라고 하는 정의에서 '체계적으로 바꿔가면서 모든 데이터에 대해' 부분이 무엇을 의미하는지 이제 알겠네요.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-3. '검증'&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검증의 의미는 깊게 생각할 것도 없습니다. 테스트 데이터는 모델이 데이터를 잘 학습했는지 '검증'해보기 위해 사용하는 데이터잖아요! &lt;u&gt;사실 검증을 영어로 말하면 테스트일 뿐인 겁니다.&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;&lt;i&gt;집합을 체계적으로 바꿔가면서 모든 데이터에 대해 모형의 성과를 측정하는 검증 방식&quot; &lt;/i&gt;&lt;/u&gt;이라고 말한 정의에서 '검증'이 뜻하는 부분은 어디인지 너무 쉽게 아시겠죠?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. K겹 교차 검증의 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 K겹 교차 검정의 의미와 원리는 대충 알겠네요. 만약 우리가 모델의 정확도(accuracy)를 측정해보고 싶다면 1번 fold가 테스트 데이터일 때 모델을 학습시켜 정확도를 산출하고, 2번 fold가 테스트 데이터일 때 모델을 학습시켜 정확도를 산출하고, 3번 fold가 테스트 데이터일 때 모델을 학습시켜 정확도를 산출하는 이 과정을 k번 fold까지 반복하는 겁니다. 어라. 그럼 여기서 한가지 의문이 들죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;❓ 잠깐, 그럼 정확도가 대체 몇 개 나오는 거야? 그러니까 모델 검증 결과가&amp;middot;&amp;middot;&amp;middot;&amp;middot;&amp;middot; k개나 나오는 거야? &lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;   &lt;/i&gt;&lt;b&gt;&lt;i&gt;네, 맞습니다.&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;359&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNqj2c/btqZqpGBQcc/QqkKbQkuTfXrctdlUTpxl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNqj2c/btqZqpGBQcc/QqkKbQkuTfXrctdlUTpxl0/img.png&quot; data-alt=&quot;K겹 교차 검증의 결과는 K개&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNqj2c/btqZqpGBQcc/QqkKbQkuTfXrctdlUTpxl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNqj2c%2FbtqZqpGBQcc%2FQqkKbQkuTfXrctdlUTpxl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;443&quot; height=&quot;359&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;359&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;K겹 교차 검증의 결과는 K개&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 데이터를 다르게 설정할 때마다 학습 데이터의 구성도 당연히 달라집니다. (위 그림에서 하얀색 칸 위치가 달라질 때마다 주황색 칸의 구성도 달라지고 있는게 보이죠.) 약간씩 다른 구성의 학습 데이터로 학습하는 모델이 총 k번 돌아가게 되는 셈이죠! 모델이 총 k번 돌아갔으니 결과물도 총 k개 나오게 되는 겁니다. 그리고 &lt;u&gt;이 k개의 결과물들의 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;평균값&lt;/span&gt;이 K겹 교차 검증 방식을 활용한 모델의 성능이 되는 거죠!.&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. K값 설정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 K값은 몇으로 설정해주어야 할까요. &lt;u&gt;일반적으로는 5나 10으로 설정&lt;/u&gt;해준다고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 일반적으로 그렇다는 말이지 절대적으로가 아니라는 것 아시죠? 데이터와 모델의 종류, 혹은 컴퓨터의 성능 등에 따라서 언제든 상황에 맞추어 다르게 설정해줄 수 있습니다. 초보자 입장에서는 이런 옵션 값을 설정해주는 것이 까다롭게 느껴집니다. 무엇이 적정값일지 감도 잘 잡히지 않고요. 그게 정상이니 걱정하지 마세요. 공부를 점차 해나가시고, 실습 경험이 쌓이다 보면 언젠가 그에 대한 감이 잡히실 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;Tip❗&amp;nbsp;&lt;/b&gt;파이썬에서는 &lt;span style=&quot;color: #006dd7;&quot;&gt;sklearn(사이킷런) model_selection 패키지의 cross_val_score 모듈&lt;/span&gt;을 활용하여 쉽게 K겹 교차 검증을 실시할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1615003611874&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.model_selection import cross_val_score&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이렇게 'K겹 교차 검증'에 대해 정리해보았습니다. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;저도 오랜만에 개념에 대해 복습할 수 있어서 좋았네요.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기본기 복습</category>
      <category>K-foldcrossvalidation</category>
      <category>K겹교차검증</category>
      <category>과적합</category>
      <category>데이터분석</category>
      <category>데이터사이언스</category>
      <category>딥러닝</category>
      <category>머신러닝</category>
      <category>모델평가</category>
      <category>분류분석</category>
      <category>사이킷런</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/10</guid>
      <comments>https://bbdata.tistory.com/10#entry10comment</comments>
      <pubDate>Sat, 6 Mar 2021 13:31:35 +0900</pubDate>
    </item>
    <item>
      <title>[파이토치] 머신러닝 Pytorch 모델의 성능을 극대화하는 7가지 팁!</title>
      <link>https://bbdata.tistory.com/9</link>
      <description>&lt;h2 id=&quot;%F-%-F%-A%-A%--velog%--%EB%A-%-C%--%EA%B-%--%EC%-D%--%--%EC%--%AE%EA%B-%BC%EC%-A%B-%EB%-B%--%EB%-B%A--%C-%A-&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;  velog 로 글을 옮겼습니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt; &lt;b&gt; &lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1649551546516&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Pytorch 머신러닝 모델의 성능을 극대화하는 7가지 팁!&quot; data-og-description=&quot;Hi! I'm Jaylnne. ✋페이스북에서 공개한 파이토치 모델을 돌려보던 중, GPU 환경은 건드리지 않고 모델 성능을 향상시킬 수 있는 방법이 없을까? 하는 궁금증이 들었다. 그런 방법이 없을 리 없다고 &quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/Pytorch-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%EA%B7%B9%EB%8C%80%ED%99%94%ED%95%98%EB%8A%94-7%EA%B0%80%EC%A7%80-%ED%8C%81&quot; data-og-url=&quot;https://velog.io/@jaylnne/Pytorch-머신러닝-모델의-성능을-극대화하는-7가지-팁&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hddb8/hyNYGlELdw/s3vdjhUyhH3Wfb09fKdE90/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/8s2op/hyN0bEkAWt/UIKkWlETsprjtsClaaqPcK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/zA6An/hyNYMzntQY/q3thlhgNQejCACJRBui9S0/img.png?width=1224&amp;amp;height=650&amp;amp;face=0_0_1224_650&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/Pytorch-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%EA%B7%B9%EB%8C%80%ED%99%94%ED%95%98%EB%8A%94-7%EA%B0%80%EC%A7%80-%ED%8C%81&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/Pytorch-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%EA%B7%B9%EB%8C%80%ED%99%94%ED%95%98%EB%8A%94-7%EA%B0%80%EC%A7%80-%ED%8C%81&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hddb8/hyNYGlELdw/s3vdjhUyhH3Wfb09fKdE90/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/8s2op/hyN0bEkAWt/UIKkWlETsprjtsClaaqPcK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/zA6An/hyNYMzntQY/q3thlhgNQejCACJRBui9S0/img.png?width=1224&amp;amp;height=650&amp;amp;face=0_0_1224_650');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Pytorch 머신러닝 모델의 성능을 극대화하는 7가지 팁!&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Hi! I'm Jaylnne. ✋페이스북에서 공개한 파이토치 모델을 돌려보던 중, GPU 환경은 건드리지 않고 모델 성능을 향상시킬 수 있는 방법이 없을까? 하는 궁금증이 들었다. 그런 방법이 없을 리 없다고&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ML&amp;amp;DL/Pytorch</category>
      <category>Ai</category>
      <category>pytorch</category>
      <category>데이터사이언스</category>
      <category>딥러닝</category>
      <category>딥러닝모델성능향상</category>
      <category>머신러닝</category>
      <category>모델성능</category>
      <category>모델성능팁</category>
      <category>초보데이터사이언티스트</category>
      <category>파이토치</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/9</guid>
      <comments>https://bbdata.tistory.com/9#entry9comment</comments>
      <pubDate>Fri, 26 Feb 2021 16:33:40 +0900</pubDate>
    </item>
    <item>
      <title>[파이토치] The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor.</title>
      <link>https://bbdata.tistory.com/8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요. 비버입니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 Pytorch(파이토치) 독학을 위해 MNIST 데이터를 실습해볼 예정이었어요. MNIST란 손글씨 이미지 분류를 실습해볼 수 있도록 제공되고 있는 공개 데이터셋을 말해요. Iris(아이리스), Titanic(타이타닉) 처럼 연습용으로 널리 쓰이는 유명한 데이터셋이랍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어김없이 시작과 함께 오류를 만났는데, 한 번 자세히 뜯어보고 싶단 생각에 글로 정리하게 되었습니다! ㅎㅎ&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span&gt;&lt;b&gt;UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at /pytorch/torch/csrc/utils/tensor_numpy.cpp:141.)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;return torch.from_numpy(parsed.astype(m[2], copy=False)).view(*s)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 예상하지 않은 출력이 뜨면 일단 살짝 당황스럽기 마련이죠. 다행히 해당 문구는 &lt;b&gt;'UserWarning'&lt;/b&gt; 이라는 단어로 시작하고 있어요. 제가 앞서 오류를 만났다고 표현했는데 사실 오류는 아니고, 경고였던 거죠. 무시하고 넘어가도 코드 실행에는 문제가 되지 않겠으나, 사실 꺼림칙하잖아요. 뭘 경고하려고 하는 건지, 내가 혹시 코드에 실수한 거라도 있는 건지.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 &lt;u&gt;왜 이 경고문구가 뜨는지 알아보기로 했답니다.&amp;nbsp;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 위 경고문구는 아래 코드를 실행했을 때 발생했어요.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1605141124248&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# MNIST 실습을 위해 파이토치로 데이터셋을 편리하게 다운로드 해오는 코드

mnist_train = dsets.MNIST(root='MNIST_data/',
                          train=True,
                          transform=transforms.ToTensor(),
                          download=True)

mnist_test = dsets.MNIST(root='MNIST_data/',
                         train=False,
                         transform=transforms.ToTensor(),
                         download=True)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자, 그럼 경고문구를 찬찬히 하나씩 뜯어볼까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 영어로 되어 있는 경고문구를 앞부분부터 일부 직역하면,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주어진 Numpy array(Numpy 배열)는 쓰기 불가 상태입니다. 그리고 Pytorch(파이토치)는 쓰기불가(non-writeable) 상태인 텐서들은 지원하지 않습니다. 즉, 당신은 텐서를 이용하여 underlying Numpy array에 쓰기가 가능합니다. 데이터를 보호하거나 그것을 쓰기 상태로 변경하고 싶다면 array를 텐서로 변환하기 전에 그 데이터를 복사해서 이용하세요.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아하, 감이 잡히네요. 그러니까 제가 다운로드 받은 MNIST 데이터는 현재 '쓰기 불가' 상태라는 거예요. 쓰기불가 상태가 뭔지 정확히는 모르겠지만 말 그대로 직접적인 수정이 불가한 어떤 상태라는 거겠죠. 그리고 이 쓰기불가 상태인 넘파이 배열은 파이토치가 지원하지 않는대요. (참고로 저는 파이토치 1.7.0 버전을 이용하고 있습니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;왜?라는 생각이 드는 순간 바로 설명이 이어지네요. '&lt;u&gt;데이터를 보호하거나'&lt;/u&gt; 아- 그렇죠. 원본 데이터를 직접 수정하면 나중에 '앗 잘못 수정했네 다시 되돌리고 싶어 ㅠ' 하는 상황이 발생해도 원본 데이터로 쉽게 되돌릴 수 없겠죠. 그러니까 &lt;u&gt;원본 데이터는 직접 수정이 불가한 상태로 해두고 원본 데이터를 하나 복사해서 복사한 데이터를 이용해 이것저것 하는 게 안전&lt;/u&gt;하다는 거예요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;아하 아하! 이제 왜 이런 경고문구를 띄웠는지 알 것 같네요. 경고문구의 내용이 영 신경 쓰인다면 데이터의 복사본을 만들어 사용하고, '귀찮다! 원본 데이터는 다시 다운받으면 된다!' 하면 그냥 사용하고 그렇게 하면 되겠네요.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;경고문구는 오류가 아니기 때문에 무시하고 넘어가도 되지만 가끔 이렇게 얘네가 어떤 내용을 말하고자 하는지 유심히 살펴보는 것도 앞으로의 공부에 많은 도움이 될 것 같습니다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그럼! 비버였습니다! :D&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1605142075448&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 참고, 파이토치 버전을 확인하는 코드
import torch
print(torch.__version__)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ML&amp;amp;DL/Pytorch</category>
      <category>Ai</category>
      <category>MNIST</category>
      <category>Python</category>
      <category>pytorch</category>
      <category>Tensor</category>
      <category>userwarning</category>
      <category>딥러닝</category>
      <category>머신러닝</category>
      <category>파이토치</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/8</guid>
      <comments>https://bbdata.tistory.com/8#entry8comment</comments>
      <pubDate>Thu, 12 Nov 2020 10:29:18 +0900</pubDate>
    </item>
    <item>
      <title>[WSL 설치 에러] Error: 0x80370102 간단하게 해결해봅시다!</title>
      <link>https://bbdata.tistory.com/6</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;  velog 로 글을 옮겼습니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt; &lt;b&gt; &lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1649546225147&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[WSL] Error: 0x80370102 해결&quot; data-og-description=&quot;WSL2 를 설치하는 도중 아래와 같은 에러가 발생했다.Error: 0x80370102열심히 구글링을 거친 결과 Microsoft 공식 페이지에서 아래 내용을 발견했다.해당 페이지에서 제안하고 있는 항목을 하나씩 확인&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/WSL-Error-0x80370102-%ED%95%B4%EA%B2%B0&quot; data-og-url=&quot;https://velog.io/@jaylnne/WSL-Error-0x80370102-해결&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eyCpB/hyNYF740Kp/Kn2Rq4oERG9jWaLlZD7qgk/img.png?width=768&amp;amp;height=402&amp;amp;face=0_0_768_402,https://scrap.kakaocdn.net/dn/evoJBU/hyNYFUyje0/gALSwi0T4DcvqfUcmkmZvk/img.png?width=768&amp;amp;height=402&amp;amp;face=0_0_768_402,https://scrap.kakaocdn.net/dn/bvnMHe/hyN0pbtQ9M/5ret3bjTBeST1jjX0wt8eK/img.png?width=964&amp;amp;height=440&amp;amp;face=0_0_964_440&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/WSL-Error-0x80370102-%ED%95%B4%EA%B2%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/WSL-Error-0x80370102-%ED%95%B4%EA%B2%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eyCpB/hyNYF740Kp/Kn2Rq4oERG9jWaLlZD7qgk/img.png?width=768&amp;amp;height=402&amp;amp;face=0_0_768_402,https://scrap.kakaocdn.net/dn/evoJBU/hyNYFUyje0/gALSwi0T4DcvqfUcmkmZvk/img.png?width=768&amp;amp;height=402&amp;amp;face=0_0_768_402,https://scrap.kakaocdn.net/dn/bvnMHe/hyN0pbtQ9M/5ret3bjTBeST1jjX0wt8eK/img.png?width=964&amp;amp;height=440&amp;amp;face=0_0_964_440');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[WSL] Error: 0x80370102 해결&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;WSL2 를 설치하는 도중 아래와 같은 에러가 발생했다.Error: 0x80370102열심히 구글링을 거친 결과 Microsoft 공식 페이지에서 아래 내용을 발견했다.해당 페이지에서 제안하고 있는 항목을 하나씩 확인&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL</category>
      <category>ASUS</category>
      <category>bios</category>
      <category>Linux</category>
      <category>ubuntu</category>
      <category>WSL</category>
      <category>wsl2</category>
      <category>WSLerror</category>
      <category>WSL설치오류</category>
      <category>WSL에러</category>
      <category>가상환경</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/6</guid>
      <comments>https://bbdata.tistory.com/6#entry6comment</comments>
      <pubDate>Wed, 4 Nov 2020 15:11:37 +0900</pubDate>
    </item>
    <item>
      <title>[Keras 설치 에러] Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow`</title>
      <link>https://bbdata.tistory.com/5</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;  velog 로 글을 옮겼습니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt; &lt;b&gt; &lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1649546459051&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[keras] import keras 에러 해결&quot; data-og-description=&quot;keras 를 import 할 때 아래와 같은 에러가 발생하면 어떻게 해야할까?ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via pip install tensorflow에러 메시지를&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@jaylnne/keras-Keras-requires-TensorFlow-2.2-or-higher.-Install-TensorFlow-via-pip-install-tensorflow&quot; data-og-url=&quot;https://velog.io/@jaylnne/keras-Keras-requires-TensorFlow-2.2-or-higher.-Install-TensorFlow-via-pip-install-tensorflow&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Md81N/hyNYBdxsOc/JADvOGKvRIypSmqx1Zyo5k/img.png?width=768&amp;amp;height=402&amp;amp;face=0_0_768_402,https://scrap.kakaocdn.net/dn/7Z18K/hyN0pJkczG/fIeMaKuFVlA0zWx66lPgr1/img.png?width=980&amp;amp;height=480&amp;amp;face=0_0_980_480&quot;&gt;&lt;a href=&quot;https://velog.io/@jaylnne/keras-Keras-requires-TensorFlow-2.2-or-higher.-Install-TensorFlow-via-pip-install-tensorflow&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@jaylnne/keras-Keras-requires-TensorFlow-2.2-or-higher.-Install-TensorFlow-via-pip-install-tensorflow&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Md81N/hyNYBdxsOc/JADvOGKvRIypSmqx1Zyo5k/img.png?width=768&amp;amp;height=402&amp;amp;face=0_0_768_402,https://scrap.kakaocdn.net/dn/7Z18K/hyN0pJkczG/fIeMaKuFVlA0zWx66lPgr1/img.png?width=980&amp;amp;height=480&amp;amp;face=0_0_980_480');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[keras] import keras 에러 해결&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;keras 를 import 할 때 아래와 같은 에러가 발생하면 어떻게 해야할까?ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via pip install tensorflow에러 메시지를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ML&amp;amp;DL/Tensorflow</category>
      <category>keras</category>
      <category>keras설치오류</category>
      <category>Python</category>
      <category>tensorflow</category>
      <category>Tensorflow 2.0</category>
      <category>딥러닝</category>
      <category>모두의딥러닝</category>
      <category>케라스</category>
      <category>텐서플로</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/5</guid>
      <comments>https://bbdata.tistory.com/5#entry5comment</comments>
      <pubDate>Sun, 1 Nov 2020 01:28:30 +0900</pubDate>
    </item>
    <item>
      <title>[TensorFlow 2.0] 사라진 Session 모듈 &amp;quot;쉬운 대체 방법!&amp;quot;</title>
      <link>https://bbdata.tistory.com/2</link>
      <description>&lt;p&gt;안녕하세요! 비버입니다! :D&lt;/p&gt;
&lt;p&gt;저는 요즘 유튜브에서 김성훈 교수님의 '모두를 위한 딥러닝 강좌 시즌1' 를 들으며 텐서플로우를 이용한 딥러닝을 복습해보고 있어요. 그런데 시작부터 부닥치는 문제점이 참 많아요. 그중에 하나가 바로 &lt;b&gt;TensorFlow의 Session 모듈!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;그렇습니다.. 교수님이 강의를 촬영할 당시 TensorFlow의 버전은 1.0.0. 그러나 현재 &lt;b&gt;내 파이썬에 설치된 TensorFlow는 버전 2.0&lt;/b&gt;...&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;b&gt;2.0으로 업그레이드된 TensorFlow는 더이상 Session 모듈을 지원하지 않는다!&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;752&quot; width=&quot;647&quot; height=&quot;461&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bT8WVK/btqCWdaIBG6/S3kheAEnkKoNgTejoeO4Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bT8WVK/btqCWdaIBG6/S3kheAEnkKoNgTejoeO4Ck/img.png&quot; data-alt=&quot;교수님 강의 캡처 이미지. 보다시피 Session 모듈을 이용한 코드를 예제로 보여주고 계심.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bT8WVK/btqCWdaIBG6/S3kheAEnkKoNgTejoeO4Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbT8WVK%2FbtqCWdaIBG6%2FS3kheAEnkKoNgTejoeO4Ck%2Fimg.png&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;752&quot; width=&quot;647&quot; height=&quot;461&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;교수님 강의 캡처 이미지. 보다시피 Session 모듈을 이용한 코드를 예제로 보여주고 계심.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;유튜브 영상의 댓글에는 한 친절한 수강생(?)분께서 다음과 같은 댓글을 달아두셨어요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;633&quot; height=&quot;123&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dozLXw/btqCYGJPCem/3zrcVlaqYIxTuvzPNywx21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dozLXw/btqCYGJPCem/3zrcVlaqYIxTuvzPNywx21/img.png&quot; data-alt=&quot;영상 아래 댓글창에 올라와 있는 한분의 댓글&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dozLXw/btqCYGJPCem/3zrcVlaqYIxTuvzPNywx21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdozLXw%2FbtqCYGJPCem%2F3zrcVlaqYIxTuvzPNywx21%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;633&quot; height=&quot;123&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;영상 아래 댓글창에 올라와 있는 한분의 댓글&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;저 말대로 코드를 입력하면 Session 모듈을 이용하실 수 있어요.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;하지만!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;실행 결과창에 끊임없이 경고 메세지가 뜬답니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JJOMR/btqCUccPpdR/V1UBQ6QxOGVr9a0B9QN1p0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JJOMR/btqCUccPpdR/V1UBQ6QxOGVr9a0B9QN1p0/img.png&quot; data-alt=&quot;위 댓글창의 코드를 입력하면 뜨는 경고 메세지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JJOMR/btqCUccPpdR/V1UBQ6QxOGVr9a0B9QN1p0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJJOMR%2FbtqCUccPpdR%2FV1UBQ6QxOGVr9a0B9QN1p0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;위 댓글창의 코드를 입력하면 뜨는 경고 메세지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;영어로 어쩌구 저쩌구. 복잡해보이지만 어쨌든 &lt;b&gt;위 코드 또한 조만간 지원하지 않게 될 거라는 내용이에요.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;그렇다면 결국 TensorFlow 2.0에 맞춰서 새로운 방식의 코드 작성 방식을 익힐 수밖에 없겠죠.&lt;/p&gt;
&lt;p&gt;구글링 했습니다. 새로운 업데이트 내용들, Session 모듈 관련된 내용만 걸러 읽었어요.&lt;/p&gt;
&lt;p&gt;그랬더니 오- 확실히 2.0 버전 방식이 더 직관적이고 편리해졌더라고요.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;김성훈 교수님의 코드 예제를 2.0 방식으로 바꾸어 써보았는데 아래를 참고하시면 바로 이해가 되실 거라고 생각해요.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;! ) 3 과 4를 더해서 7이 나오게 만드는 간단한 예제에요.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;TensorFlow V1 방식&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #fafafa; border-radius: 4px; width: 336px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; width: 30px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;12&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 306px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;import&lt;/span&gt;&amp;nbsp;os&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;os.environ[&lt;span style=&quot;color: #63a35c;&quot;&gt;'TF_CPP_MIN_LOG_LEVEL'&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'2'&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;import&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;tensorflow.compat.v1&amp;nbsp;as&amp;nbsp;tf&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;tensorflow.compat.v1&amp;nbsp;as&amp;nbsp;tf&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;tf.disable_v2_behavior()&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;node1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;tf.constant(&lt;span style=&quot;color: #0099cc;&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;tf.float32)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;node2&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;tf.constant(&lt;span style=&quot;color: #0099cc;&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;tf.float32)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;node3&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;tf.add(node1,&amp;nbsp;node2)&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;tf.add(node1,&amp;nbsp;node2)&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;sess&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;tf.Session()&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;print&lt;/span&gt;(&lt;a href=&quot;sess.run(node3))&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;sess.run(node3))&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;TensorFlow V2 방식&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #fafafa; border-radius: 4px; width: 484px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; width: 30.8px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;18&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 452.4px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;#&amp;nbsp;Info&amp;nbsp;로그를&amp;nbsp;필터링하려면&amp;nbsp;1,&amp;nbsp;Warning&amp;nbsp;로그는&amp;nbsp;2,&amp;nbsp;Error&amp;nbsp;로그는&amp;nbsp;3&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;import&lt;/span&gt;&amp;nbsp;os&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;os.environ[&lt;span style=&quot;color: #63a35c;&quot;&gt;'TF_CPP_MIN_LOG_LEVEL'&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'2'&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;import&lt;/span&gt;&amp;nbsp;tensorflow&amp;nbsp;as&amp;nbsp;tf&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;#&amp;nbsp;앞쪽&amp;nbsp;레이어의&amp;nbsp;노드&amp;nbsp;빌드하기&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;node1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;tf.constant(&lt;span style=&quot;color: #0099cc;&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;tf.float32)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;node2&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;tf.constant(&lt;span style=&quot;color: #0099cc;&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;tf.float32)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;#&amp;nbsp;뒷쪽&amp;nbsp;레이어의&amp;nbsp;노드(즉&amp;nbsp;node3)를&amp;nbsp;함수로&amp;nbsp;정의하기&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;@tf.function&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;def&lt;/span&gt;&amp;nbsp;forward()&amp;nbsp;:&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;return&lt;/span&gt;&amp;nbsp;node1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;&amp;nbsp;node2&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;#&amp;nbsp;그래프를&amp;nbsp;실행시키고&amp;nbsp;output을&amp;nbsp;확인해보기&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;out_a&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;forward()&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;print&lt;/span&gt;(out_a)&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;두 개를 비교해보세요. 차이를 아시겠나요?&lt;/p&gt;
&lt;p&gt;V1에서는 node들을 모두 빌드업 해둔 다음 &lt;b&gt;Session 모듈을 이용해 그래프를 실행&lt;/b&gt;시켰어요.&lt;/p&gt;
&lt;p&gt;하지만 V2에서는 입력값 (input)이 들어가는 node들만 빌드업 해둔 후 그 다음 node (이 예제에서는 node3)은 미리 빌드업 해둔 게 아니라 &lt;b&gt;함수로 정의해서 실행시켰죠.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;딥러닝 공부를 위해 파이썬 기초 문법을 공부해보신 분들에게는 &lt;b&gt;Session 이라는 낯선 모듈보다 def가 훨-씬 익숙하실 거예요. 그렇죠?&lt;/b&gt; 그래서인지 저는 개인적으로 V2의 코딩 방식이 더 마음에 들었어요.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과는 둘다 똑같이 7&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #fafafa; border-radius: 4px; width: 529px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; width: 22px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;4&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 506.8px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;#V1의 결과 (앞서 말한 경고 메시지가 함께 뜸)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;Instructions&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;for&lt;/span&gt;&amp;nbsp;updating:&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;non&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;-&lt;/span&gt;resource&amp;nbsp;variables&amp;nbsp;are&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;not&lt;/span&gt;&amp;nbsp;supported&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;in&lt;/span&gt;&amp;nbsp;the&amp;nbsp;long&amp;nbsp;term&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;7.&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #fafafa; border-radius: 4px; width: 301px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; width: 22px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;2&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 278.8px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;#V2의&amp;nbsp;결과&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;a href=&quot;tf.Tensor(&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;tf.Tensor(&lt;/a&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;7.&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;shape&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;(),&amp;nbsp;dtype&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;float32)&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;둘다 오류 없이 결과값(output)이 잘 나오지만, 앞으로 사용하지 못하게 될 가능성이 있는 V1 방식보단 V2 방식에 익숙해지는 게 좋을 것 같아요.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이상! 비버였습니다! :D&lt;/p&gt;</description>
      <category>ML&amp;amp;DL/Tensorflow</category>
      <category>session</category>
      <category>Session 모듈</category>
      <category>session 오류</category>
      <category>tensorflow</category>
      <category>Tensorflow 2.0</category>
      <category>TensorFlow 오류</category>
      <category>텐서플로우</category>
      <category>텐서플로우 2</category>
      <category>텐서플로우 세션</category>
      <category>파이썬</category>
      <author>비버데이터</author>
      <guid isPermaLink="true">https://bbdata.tistory.com/2</guid>
      <comments>https://bbdata.tistory.com/2#entry2comment</comments>
      <pubDate>Wed, 25 Mar 2020 01:20:12 +0900</pubDate>
    </item>
  </channel>
</rss>