AI
-
파이썬 버전 여러 개 사용하는 방법AI 2024. 6. 24. 19:34
1. anaconda를 설치해 준다. 2. cmd 를 켜고 "/Script/activate"를 실행하여 anaconda base env를 실행한다. 2 - 번외. "conda env list"를 실행하여 현재 env list 에 base 밖에 없음을 확인 해 본다. 3. "conda create -n python="를 입력하고 실행하여 env를 create 한다.예: conda create -n python-3.10.9 python=3.10.9 4. "conda activate "을 실행하여 가상 환경을 실행한다.예: conda activate python-3.10.9 5. "python --version"을 입력해서 버전을 확인해 본다. 이렇게 했는 데, 잘 안되면 내가 지금 사용중인 python p..
-
isaac sim ddpg solution of cartpole problemAI 2024. 4. 16. 21:50
isaac sim에 입문하는 용도로 제격인 주제인 거 같다. https://github.com/akswnd98/cartpole_train GitHub - akswnd98/cartpole_train Contribute to akswnd98/cartpole_train development by creating an account on GitHub. github.com isaac sim 인터페이스 우선 isaac sim simulator와 python 코드로 대화하는 방법에 대해 알아보자. 다음과 같은 방법으로 cartpole들을 원하는 위치에 원하는 개수 만큼 생성할 수 있다. def generate_cartpoles (cartpole_origin_positions: np.ndarray[np.ndarray[..
-
NLP 입문자를 위한 text 전처리AI 2023. 4. 26. 12:32
문장을 단어로 쪼개고 단어에 미리 매긴 번호로 문장을 표현하는 것 을 목표로 한다. 1. 챗봇 모델을 블랙박스로 생각해 본다. 산에서 문명의 도움 없이 불을 피는 방법을 알려주세요 -> BLACK BOX -> 산에서 문명의 도움 없이 불을 피우는 방법은 여러 가지가 있습니다. 여기 몇 가지 기본적인 방법들을 소개합니다 ......... 2. 컴퓨터에서 문장을 어떻게 표현하는 지 궁금해 한다. 3. 문장을 단어로 쪼개고 단어에 미리 매긴 번호로 문장을 표현하는 것이 좋다고 다른 사람들이 밝혀냈으므로 받아들인다. 그리고 한국어 단어를 다뤄야 하므로 konlpy의 Okt와 tensorflow의 TextVectorization을 사용해 본다. from konlpy.tag import Okt import tens..
-
AI할 때 수치 안정성AI 2023. 4. 25. 17:34
tf.math.log(tf.reduce_sum(tf.exp(tf.constant([10000, 9000], dtype=tf.float32)))) # = inf ... 1번 계산 tf.reduce_logsumexp(tf.constant([10000, 9000], dtype=tf.float32)) # = 10000 ... 2번 계산 위의 두 계산은 같은 값을 리턴하지 않는다. 왜냐하면 계산 중간에 tf.exp(tf.constant(10000, dtype=tf.float32)) # = inf 이게 inf기 때문이다. $$ \log{(e^{10000} + e^{9000})} = \log{\cfrac {(e^{10000} + e^{9000})} {e^{10000}}} + 10000 = log(1 + 0) + 10..
-
tensorflow custom gradientAI 2023. 4. 25. 17:02
만약 다변수 벡터함수의 편미분을 모른다면 당신이 바보 처럼 느껴질 수 있습니다. tensorflow에서는 사용자가 직접 미분 가능 함수들을 제작할 수 있게 custom gradient라는 기능을 제공한다. 다음과 같이 사용할 수 있다. import tensorflow as tf @tf.custom_gradient def custom_sin_plus_exp (x, y, z): def grad (upstream): return upstream * tf.cos(x), upstream * tf.exp(y), None return tf.sin(x) + tf.exp(y), grad 위에 @tf.custom_gradient 데코레이터를 붙이고 (리턴값, 미분 함수) 꼴로 리턴하면 된다. 그리고 미분 함수인 grad의..
-
tensorflow용 RNN-T custom 함수 제작 후기AI 2023. 4. 25. 16:41
pytorch에는 rnnt-loss 함수가 공식적으로 제공된다. tensorflow에는 rnnt-loss 함수가 제공되지 않는다. 3rd party 모듈이 있었지만 입력을 어떻게 줘야하는 지에 대한 세부 설명이 없어서 자작해 봤다. custom tensorflow 함수를 만드는 아주 좋은 경험들을 얻게 된거 같다. 이 자작함수 만드려면 생각지도 못한 수치 오류와 아이디어들로 넘쳐난다. custom 함수를 만들면서 고려해야 하는 것은 크게 3가지다. gpu 연산을 사용하도록 설계해야 한다.수치 연산 도중에 nan이 나오지 않도록 안전한 함수들을 사용해야 한다.쓸데없이 gpu 메모리를 많이 사용하지 않도록 해야한다. 1번의 경우 gpu로 할 수 있는 연산의 특성을 알면 편하다. 답을 구하는데 있어서 순차적인..
-
yolov8 전이 학습 시키기AI 2023. 4. 17. 13:00
옛날에 yolov3 시절에 마스크 검출 머신을 darknet으로 전이학습 해봤던 기억이 있다. 그 때 darknet 사용법이 좀 복잡했던 거로 기억하는데 yolov8은 엄청 쉬워졌다. 1. 파이썬이 있다고 가정하고 2. 레포 클론하고 git clone https://github.com/ultralytics/ultralytics 3. 레포 들어가서 help yolo help 치면 다음과 학습용 명령어를 볼 수 있다. yolo train data=xxx.yaml model=yolov8n.pt epochs=10 lr0=0.01 4. 여기서 data=xxx.yaml 의 xxx.yaml은 train: D:/datasets/smoking.v3i.yolov8/train/images val: D:/datasets/sm..