<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>abel_.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Fri, 27 Sep 2024 11:39:17 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. abel_.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/abel_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[20240907 오늘 한 거 ]]></title>
            <link>https://velog.io/@abel_/20240907-%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0</link>
            <guid>https://velog.io/@abel_/20240907-%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0</guid>
            <pubDate>Fri, 27 Sep 2024 11:39:17 GMT</pubDate>
            <description><![CDATA[<p>프로젝트를 해봤다.
그 중에서 의미 있는 게 있어서 가져와봤다.</p>
<h3 id="코인가격-등락-예측-프로젝트">코인가격 등락 예측 프로젝트</h3>
<p><strong>목표</strong></p>
<ul>
<li>코인 가격의 등락 맞추기</li>
<li>등락 폭에 따라 0, 1, 2, 3 으로 class를 나눈다.<ul>
<li>많이 하락하면 0 적게 하락 1, ... 이런식으로</li>
</ul>
</li>
</ul>
<p><strong>lgbm 모델 학습 후 아래 지표로 평가</strong></p>
<ul>
<li>accuracy_score, roc_auc_score    </li>
<li>gain(영향력)</li>
<li>split(예측에 관여한 횟수)</li>
</ul>
<p>처음에 받은 csv에서 피처는 아래와 같았다.
<img src="https://velog.velcdn.com/images/abel_/post/a2cf1933-b758-413b-a97d-dcb14c890e13/image.png" alt=""></p>
<p>단순 lgbm모델 학습을 돌렸을 때 아래와 같은 정확도가 나왔다.
acc: 0.4252X..., auroc: 0.6329X...</p>
<p>tscv를 사용한 결과는 아래와 같았다.
<img src="https://velog.velcdn.com/images/abel_/post/4d4058b6-e504-4819-be28-241de8392b67/image.png" alt=""><img src="https://velog.velcdn.com/images/abel_/post/938f7e01-42c2-4518-83e9-05ea29837ea1/image.png" alt=""></p>
<p>그리고 실제로 대회에 제출해봤을 땐 아래와 같은 정확도가 나왔다.
public: 0.3988</p>
<p><img src="https://velog.velcdn.com/images/abel_/post/1e8fa489-2167-4756-b443-31698b110b80/image.png" alt="">
학습 이후 피처 평가를 하기위해 gain과 split 값을 뽑아보았다.
위의 결과에서 scaled_utxo_count, scaled_log_total_taker_volume 값이 좀 영향이 크다고 생각했고 이를 지워봤다.</p>
<p><img src="https://velog.velcdn.com/images/abel_/post/6e41bbf1-551f-45fe-88e4-0664de067168/image.png" alt="">
위와 같이 완만한 그래프가 되었다.</p>
<p><img src="https://velog.velcdn.com/images/abel_/post/1cd8516d-3dc1-4527-9630-381a6469948a/image.png" alt=""></p>
<p>좀 생각해볼 건 close와 상관 계수 자채는 그렇게 튀는 값이 없었다는 거다.</p>
<blockquote>
<pre><code class="language-python"></code></pre>
</blockquote>
<h1 id="scaled_utxo_count와-scaled_log_total_taker_volume-제거">scaled_utxo_count와 scaled_log_total_taker_volume 제거</h1>
<p>train_df = df.loc[df[&#39;_type&#39;]==&#39;train&#39;].drop(columns=[&#39;_type&#39;, &#39;scaled_utxo_count&#39;, &#39;scaled_log_total_taker_volume&#39;])
test_df = df.loc[df[&#39;_type&#39;]==&#39;test&#39;].drop(columns=[&#39;_type&#39;, &#39;scaled_utxo_count&#39;, &#39;scaled_log_total_taker_volume&#39;])</p>
<pre><code>
위 코드로 제거 후 학습을 진행했다.

정확도는 아래와 같다
acc: 0.4252X..., auroc: 0.6329X...

![](https://velog.velcdn.com/images/abel_/post/2ae1ddc3-4c1f-49ae-ae73-060f8d5c87ae/image.png)
그리고 이번엔 gain값도 크게 튀는 게 없어서 이대로 TSCV 학습도 진행했다.

![](https://velog.velcdn.com/images/abel_/post/c45bcad4-7918-4e2e-8869-e3e4b1d6a2c1/image.png) ![](https://velog.velcdn.com/images/abel_/post/deeb08ea-db08-466e-9cdb-f1e144354372/image.png)
target 0을 예측하는 횟수는 올랐는데 precision 값은 눈에 띄게 떨어졌다.

제출 했을 떄 결과는 아래와 같다.
public: 0.3849

아주 조금이지만 오히려 떨어졌다
이때 든 생각은
- 많은 지표를 담는 거보다 영향도가 높은 지표만 우선해서 골라야하나?
- 아니면 내가 지워버린 지표가 매우 주요한 없어선 안 될 지표였나? 

여러 생각이 들었지만 일단 public이 떨어진 가설에는 집중하지 않기로 했다. 그런데 최종 결과에서 이걸 뒤집는 결과가 나왔다.
public -&gt; private(원본사용): 0.3849 -&gt; 0.3988
public -&gt; private(피처삭제): 0.3849 -&gt; 0.4176
저런 점수에 그것도 아주 적은 차이에 집착하면 안 되지만 최대한 많은 지표를 담을수록 성능이 높아지는 건지 확인을 해보고 싶은 결과였다.
이후엔.. 기회가 되면 이런 상황에서 각 피처의 가중치를 부여해보고 싶었는데 그건 학습이 이루어진 다음에 이야기인 거라 그거보다 애초에 학습에 관여 자채를 못하는 피처를 줄이고 싶어서 그 방법을 생각해볼 거 같다.
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[오늘 한 거 20240830]]></title>
            <link>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-20240830</link>
            <guid>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-20240830</guid>
            <pubDate>Fri, 30 Aug 2024 11:20:34 GMT</pubDate>
            <description><![CDATA[<h4 id="이론을-배우는-게-의미가-있을까">이론을 배우는 게 의미가 있을까?</h4>
<p>처음 배우는 분야의 강의를 들으면서 사람들이 많이 되묻는 점이다.
 내경우는 git강의와 통계, 생성 모델을 배울 때 마찬가지로 되묻게 되었고 주변에서 많이 들었는데 이유는 아래와 같다고 생각했다.(실제로 배울 필요가 없는 부분은 제외한다)</p>
<ul>
<li>난이도가 높음</li>
<li>목적이 이해가 되지 않음</li>
<li>경험을 통한 체득이 빠른 경우</li>
</ul>
<p>위와 같은 이유로 이론 학습에 대한 회의를 드러내고 자세한 이유를 설명을 해보면 아래와 같다.</p>
<h4 id="난이도가-높음">난이도가 높음</h4>
<ul>
<li>배움에 품이 많이 들어간다.
  -&gt; 기회비용이 크다.<h4 id="목적이-이해가-되지-않음">목적이 이해가 되지 않음</h4>
</li>
<li>중요도를 알 수 없음
  -&gt; 필요 여부를 판단할 수 없음</li>
<li>단순 암기를 하게 됨
  -&gt; 학습 효율이 떨어짐<h4 id="경험을-통한-체득이-빠른-경우">경험을 통한 체득이 빠른 경우</h4>
</li>
<li>방법이 맞지 않음
  -&gt; 확신이 없어지고, 학습 효율이 떨어짐</li>
</ul>
<hr>
<p>이런 생각의 종점은 &quot;이론은 필요 없다.&quot; 이다. 저기에 추가를 하면 &quot;이론은 굳이 필요가 없다.&quot;가 되고 여러 말이 붙을 수도 있지만 첫 문장에서 벗어나지 않는다.
해서 이런 경우 좀 더 본질적인 질문을 던져야한다고 생각한다. </p>
<ol>
<li>왜 도입하게 되었는지</li>
<li>어디에 사용할 것인지</li>
<li>이론을 모르면 어떤 문제가 생기는지</li>
</ol>
<p>질문 내용보다 중요한 건 질문을 던지는 것이다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[오늘 한 거 240823(정리중)]]></title>
            <link>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-240823</link>
            <guid>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-240823</guid>
            <pubDate>Fri, 23 Aug 2024 11:52:22 GMT</pubDate>
            <description><![CDATA[<p>통계에 관련 이야기를 들었다.</p>
<h3 id="베이즈-주의-vs-빈도-주의">베이즈 주의 vs 빈도 주의</h3>
<hr>
<p><strong>베이즈 주의</strong></p>
<ul>
<li>특정 상황을 가정하고 그에 따른 확률을 계산한다.</li>
<li>가정이 들어가고 예상에 가까운 결과를 낸다.</li>
</ul>
<h2 id="빈도-주의"><strong>빈도 주의</strong></h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[오늘 한 거 240816]]></title>
            <link>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-240816%EC%88%98%EC%A0%95%EC%A4%91</link>
            <guid>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-240816%EC%88%98%EC%A0%95%EC%A4%91</guid>
            <pubDate>Fri, 16 Aug 2024 11:53:32 GMT</pubDate>
            <description><![CDATA[<h3 id="멀티프로세싱">멀티프로세싱</h3>
<h4 id="python에서-17gb자리-단일-csv-파일을-pdread_csv로-불러올-일이-있었는데-해당-부분을-최적화-해보기-위해서-예전에-했던-멀티-프로세싱을-써보았다">python에서 1.7GB자리 단일 csv 파일을 pd.read_csv()로 불러올 일이 있었는데 해당 부분을 최적화 해보기 위해서 예전에 했던 멀티 프로세싱을 써보았다.</h4>
<p><strong>우선 예전에 코드를 한 번 보았다</strong></p>
<pre><code class="language-python">corr_df = pandas.DataFrame()
if __name__ == &#39;__main__&#39;:  # for windows os
    freeze_support()        # for windows os
    with Pool(processes=15) as pool:
        pool_size = 15
        chunk_size = 2000 * pool_size
        count = 0
        for file_chunk in pd.read_csv(&#39;../csv/data_compact.csv&#39;, low_memory=False, chunksize=chunk_size):
            line = count * chunk_size
            print(f&quot;Processing {chunk_size} lines after line {line}&quot;)

            # Split chunk evenly. It&#39;s better to use this method if every chunk takes similar time.
            pool.map(processing_chunk, pd.np.array_split(file_chunk, pool_size))

            count += 1
        pool.close()
        pool.join()
</code></pre>
<ul>
<li>windows 10 멀티프로세싱을 할 때 권한을 얻는 과정이 필요하다고 한다. 해서 2 ~ 3줄에 해당 처리를 해주었다.</li>
<li>pool은 처음 호출시 사용 가능한 쓰레드 수를 지정한다.</li>
<li>이후 map method를 호출하여 인자 값으로 병렬 실행 시킬 함수와 해당 함수 호출에 필요한 인자를 넘겨준다.</li>
<li>이 과정에서 단순하게 read_csv method를 넘겨주면 파일 전채를 읽어오는 프로세스를 15개 생성하는 꼴이라 파일을 부분부분 쪼개서 실행시켜야한다.</li>
</ul>
<p><a href="https://subscription.packtpub.com/book/programming/9781783989263/1/ch01lvl1sec08/three-constraints-on-computing-performance-cpu-ram-and-disk-io">https://subscription.packtpub.com/book/programming/9781783989263/1/ch01lvl1sec08/three-constraints-on-computing-performance-cpu-ram-and-disk-io</a>
아래 설명은 위 사이트를 참조했다.
<strong>정확한 내용은 아니고 제가 생각한 내용입니다.</strong>
<img src="https://velog.velcdn.com/images/abel_/post/a39f2280-d3d4-45cb-950e-807555327753/image.png" alt="">
<strong>다시 설명하면</strong></p>
<ul>
<li>read_csv() 실행시 storage에서 data_compact.csv를 순차적으로 읽어온다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/abel_/post/907e4b22-c79e-4c7e-ad9a-ad575615fd55/image.png" alt="">
<strong>조금 자세히 보면</strong></p>
<ul>
<li>실행된 프로그램은 read_csv() 실행 이후 storage에 저장된 데이터를 메모리에 올려 cpu가 사용가능한 상태로 만든다.</li>
<li>이 과정에서 주체가 되는 프로그램은 프로세서로서 하나의 물리적인 쓰레드에 할당 되고 프로세서는 하나의 작업을 할 수 있게 된다.</li>
</ul>
<p><strong>아이디어와 상황고려?</strong></p>
<ul>
<li>프로세서를 늘리면 된다.</li>
<li>사용하는 cpu가 8코어 16쓰레드이니 한 12개 정도 할당하면 되겠다 싶었다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[오늘 한 거 20240809]]></title>
            <link>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-20240809</link>
            <guid>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-20240809</guid>
            <pubDate>Fri, 09 Aug 2024 10:02:43 GMT</pubDate>
            <description><![CDATA[<p><strong>글씨는 두꺼운 게 좋다.</strong></p>
<p>velog 작성 창과 한 4시간 정도를 눈 씨름을 했다. 글을 두서 없이 쓰는 편이지만 
오늘은 특히나 더 안 써지는 게 첫 주간 회고라서 그런가보다.</p>
<h3 id="월--수">월 ~ 수</h3>
<hr>
<p> 뭐든지 새롭게 배우는 게 느린 편이고 갈피도 못 잡는 편이라 월, 화까지는 정신도 없고 집중도 못했다. 수요일은 늦잠까지 자고.. 그래서 수요일 오후부터 해서 강의를 더 조금 빡빡하게 듣고 개념을 슥슥 넘어간 부분이 많아서 이날에 해당하는 이해가 어려웠다.</p>
<h3 id="목">목</h3>
<hr>
<p> 개인 진도가 같이 하는 분들보다 진도가 조금 밀려서 같이 토의하는 시간에 많이 이야기를 못 하는 건 아쉬웠다. 그래도 듣는 거 자체가 자산이라 이야기가 많이 오가는 분위기가 좋았다. 
 이날 아마 local에서 사용하던 anaconda 가상환경이 버전 문제가 있어서 dependencies를 하나 하나 해결하다가 그냥 통으로 밀어버렸다. 처음에 pandas documents를 보고 참고를 했다.
 <a href="https://pandas.pydata.org/docs/getting_started/install.html">https://pandas.pydata.org/docs/getting_started/install.html</a></p>
<pre><code class="language-shell"> conda create -c conda-forge -n test_env python=3.9 pandas numpy=1.22.4 \
 python-dateutil=2.8.2 pytz=2020.1 tzdata=2022d numexpr=2.8.4 bottle neck=1.3.6 \
 numba=0.56.4 matplotlib=3.6.3 scipy=1.10.0 xlrd=2.0.1 beautifulsoup4=4.11.2</code></pre>
<p> 이후에 torch를 설치하려고 또 종속성 문제가 생겼다. 어차피 밀어버린 거 한 번 더 밀고 이번엔 pytorch 공홈을 참고했다.
 <a href="https://pytorch.org/get-started/previous-versions/">https://pytorch.org/get-started/previous-versions/</a></p>
<pre><code class="language-shell"> conda create -n boost_env python=3.11 pytorch==2.3.1 \
 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia</code></pre>
<p> pytorch 2.5?인가 2.4는 문제가 조금씩 있어서 안정적으로 옛날 버전을 설치했다. 사실 cuda도 내 컴퓨터에 이미 설치된 버전이 12.5고 지금은 pytorch에서 일반적으로 지원하지 않는 것으로 알고 있다. 해서 위에서 설치할 때 pytorch-cuda=12.1로 설치를 하였고</p>
<p> <img src="https://velog.velcdn.com/images/abel_/post/84fc507d-f153-4c3d-a25c-24b5819ba449/image.png" alt="">
 nvidia-smi를 실행해서 최적 cuda 버전을 보면 12.5이고
  <img src="https://velog.velcdn.com/images/abel_/post/d4a695f8-7e39-4e4c-8e65-f278f135a875/image.png" alt=""><a href="https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions">https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions</a></p>
<p>최적 버전이 아니더라도 하위 호환이 되니 문제는 없었다</p>
<h3 id="금">금</h3>
<hr>
<p>금요일쯤 되니까 같이 하는 분들하고 이야기가 슬슬 트이기 시작한다. 내가 같이 진도만 잘 따라가면 좋을 거 같다...
우선 급한 과제를 마감하고 오후에 있을 프로그램 준비하고 오늘 작성하는 회고록까지 금요일의 일정은 마무리를 했다...</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[오늘 한 거 240806]]></title>
            <link>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-240806</link>
            <guid>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-240806</guid>
            <pubDate>Wed, 07 Aug 2024 06:14:30 GMT</pubDate>
            <description><![CDATA[<h4 id="pytorch-문제를-풀다가-이해가-안-되는-지문이-있어서-아는-분께-도움을-요청하여-문제를-해결하였다">pytorch 문제를 풀다가 이해가 안 되는 지문이 있어서 아는 분께 도움을 요청하여 문제를 해결하였다.</h4>
<p>해당 지문은 아래와 같다</p>
<blockquote>
<p>torch.std()를 통해 &#39;포본&#39;표준편차를 계산할 수 있다. </p>
</blockquote>
<p>나는 표본표준편차가 아닌 표준편차를 계산한다고 생각했는데 지문이 저래서 당황스러웠다.</p>
<p>내 생각대로면 표준편차가 메서드 이름이 std면 표본표준편차는 sstd(smaple std)이런식의 메서드가 존재하거나 표본 혹은 모집단을 구분하는 매개변수가 정의 되어 있어야 하겠지만 보이지 않았다.</p>
<pre><code class="language-python">torch.std(input, dim=None, \*, correction=1, keepdim=False, out=None)→ Tensor
# https://pytorch.org/docs/stable/generated/torch.std.html#torch.std</code></pre>
<hr>
<p>혹시 정의를 이해하지 못하는 건가 해서 같이 공부하는 분께 물어보니 아래와 같은 배경을 설명해주셨다</p>
<blockquote>
<p>모집단은 크게는 집단 자체를 의미하고 거기서 뽑아낸 것이 표본 그리고 이를 통해 표본표준편차를 구하면 모집단의 표본표준편차를 추정해볼 수 있다. 집단의 편차를 계산할 때 효율성을 생각해서 모집단에서 추출한 표본표준편차만을 계산하는 것이 일반적이다.</p>
</blockquote>
<p>위를 바탕으로 <code>그러면 일반적인 경우에 표준편차를 표본표준편차라고도 부를 수 있나?</code>를 생각해봤지만 단정은 못했다. 일단 비약이 너무 심한 것도 있고 반대로 모집단이 집단 자체를 의미하는 걸 생각해보면 <code>집단 자체의 표준편차는 모집단의 표준편차이니 크게 보면 모표준편차를 표준편차라고 볼 수도 있나?</code>를 생각할 수도 있을 거 같아서이다.
<br>여기까지 생각을 한 뒤에 pytorch 문서에 있는 std 계산식을 살펴보았다.</p>
<img src="https://velog.velcdn.com/images/abel_/post/4079a59f-199c-4911-9f83-26d9331b3059/image.png" align="left" alt="pytorch의 std수식" attributionsrc="https://pytorch.org/docs/stable/generated/torch.std.html#torch.std"/>
<br><br><br><br><br><br>
위는 pytorch에 명시된 std의 계산식이다. 모표준편차와 표본표준편차는 계산 식이 다르니 둘 중 위의 식과 같은 걸 찾아보면 pytorch에서 말하는 표준편차를 알아낼 수 있겠다 싶었다
<div align='center'>
  <img src='https://velog.velcdn.com/images/abel_/post/7f1167fd-cad0-46f4-8f24-eeb6d46376c7/image.png' align='left' width="40%" hight="40%" attributionsrc='https://www.standarddeviationcalculator.io/'> 
  <img src='https://velog.velcdn.com/images/abel_/post/c203dc48-5eb5-4f2c-9aa3-2c84ae3f9ca5/image.png' align="center" width='40%' hight='40%' attributionsrc='https://www.standarddeviationcalculator.io/'>
</div><br>
그리고 통계를 손 놓은지 오래된 나는 식을 정확하게 볼 줄 몰랐다. 위는 표본표준편차(좌)와 모표준편차(우)의
공식인데 pytorch의 std 계산식과 비교해보려고 했으나 아는 게 없어 눈으로만 비교를 해봤고 표본표준편차의 꼴과 유사해보였다.

<p>처음 알려주셨던 분이 본인도 찾아보다가 일단 코드로 돌려보았다고 하셨다.</p>
<pre><code class="language-python">import torch

a = torch.tensor([x * 10 for x in range(1, 7)], dtype=torch.float32)
s = sum((a - torch.mean(a)) ** 2)

print(f&#39;torch 표준편차: {torch.std(a)}&#39;)
print(f&#39;모표준편차: &#39;, torch.sqrt(s / 6))
print(f&#39;표본표준편차: &#39;, torch.sqrt(s / 5))</code></pre>
<img src='https://velog.velcdn.com/images/abel_/post/463fa089-6335-4463-8529-c392b40eaf06/image.png' align='left'>
<br><br><br><br><br>
위 결과로 볼 때 표본표준편차로 보는 것이 타당할 거 같다고 이야기 해주셨다. 



]]></description>
        </item>
        <item>
            <title><![CDATA[오늘 한 거 240805]]></title>
            <link>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-0805</link>
            <guid>https://velog.io/@abel_/%EC%98%A4%EB%8A%98-%ED%95%9C-%EA%B1%B0-0805</guid>
            <pubDate>Mon, 05 Aug 2024 10:57:51 GMT</pubDate>
            <description><![CDATA[<h3 id="pytorch">Pytorch</h3>
<ul>
<li>연구쪽에서 많이 사용하는 딥러닝 라이브러리</li>
</ul>
<h3 id="anaconda">anaconda</h3>
<ul>
<li>페키지 관리 시스템</li>
<li>가상 환경 구축을 도와준다</li>
</ul>
<h4 id="이후에-사용할-환경-세팅">이후에 사용할 환경 세팅</h4>
<blockquote>
<p>conda create -c conda-forge -n test_env python=3.9 pandas numpy=1.22.4 python-dateutil=2.8.2 pytz=2020.1 tzdata=2022d numexpr=2.8.4 bottle neck=1.3.6 numba=0.56.4 matplotlib=3.6.3 scipy=1.10.0 xlrd=2.0.1 beautifulsoup4=4.11.2</p>
</blockquote>
<p><a href="https://pandas.pydata.org/docs/getting_started/install.html">https://pandas.pydata.org/docs/getting_started/install.html</a>
버전은 일단 위를 참고하고 
중간 중간에 버전이 꼬여서 가상 환경을 지우고 다시 설치 했다.</p>
<p><img src="https://velog.velcdn.com/images/abel_/post/15e96ae4-6719-44d3-8115-c5fb6e8c4241/image.png" alt=""></p>
<hr>
<h3 id="tensor">Tensor</h3>
<p><img src="https://velog.velcdn.com/images/abel_/post/cb1eb82f-8164-4245-b604-58c273d32d60/image.png" alt=""></p>
<ul>
<li>수학적인 정의랑 코드 상에서 탠서는 비슷하게 보면 될 거 같다.</li>
<li>정의는 이러한대 실제 연산에선 모두 tensor로 취급하는 걸로 알고 있다.</li>
</ul>
<h3 id="1-d-tensor">1-D Tensor</h3>
<p>-&gt; vector</p>
<h3 id="2-d-tensor">2-D Tensor</h3>
<p>-&gt; matrix</p>
<h3 id="3-d-tensor">3-D Tensor</h3>
<p>-&gt; tensor</p>
<h4 id="위처럼-부르는-이름의-차이-정도만-있다">위처럼 부르는 이름의 차이 정도만 있다.</h4>
<h4 id="3차원-이상은-축이-추가-되어-담을-수-있는-정보가-늘어난다고-생각하고-계산할-때-신경쓰는-정도인-거-같다">3차원 이상은 축이 추가 되어 담을 수 있는 정보가 늘어난다고 생각하고 계산할 때 신경쓰는 정도인 거 같다.</h4>
<hr>
<hr>
<h3 id="data-type">data type</h3>
<ul>
<li><p>원래 파이썬은 타입 관련해선 비교적 자유로웠지만 pytorch등에선 따로 지정을 하고 계산을 위해서 엄격하게 관리한다.</p>
<blockquote>
<p>코드로는 torch.int32, torch.int
자동 형변환도 안 되는 경우가 많아서 직접 해야한다.</p>
</blockquote>
</li>
<li><p>pytorch에서 지원해주는 Tensor type에선 담기는 data type 정보도 확인할 수 있다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/abel_/post/528f83e0-62d7-403f-9bf3-d09935b193e2/image.png" alt="">
출처: <a href="https://pytorch.org/docs/stable/tensors.html">https://pytorch.org/docs/stable/tensors.html</a></p>
<h3 id="tensormethod">tensor.method</h3>
<blockquote>
<p>기존의 list, dict, tuple과 다른 타입이라 기본 제공해주는 min(), max() 등은 사용할 수 없다.
그래서 torch.sum(), .pord(), mean() 등을 제공한다</p>
</blockquote>
<h4 id="글을-거의-처음-써보는데-생각보다-힘들다-간단하게라도-기억할-것만-정리해놓아야겠다">글을 거의 처음 써보는데 생각보다 힘들다 간단하게라도 기억할 것만 정리해놓아야겠다</h4>
]]></description>
        </item>
    </channel>
</rss>