전체 글 193

3071. Minimum Operations to Write the Letter Y on a Grid

콘테스트 3번 문제로 나온 문제인데, 이 문제도 그렇게 어려운 편은 아니었던 것 같습니다. Y자의 위에까지부분을 iterate하고, 그 다음 부분을 iterate 합니다. 가짓수가 그렇게 많지는 않기 때문에 모든 경우의 수를 다 해버렸습니다. 나중에 결과 보니깐 시간 복잡도 측면에서는 좀 안좋게 나왔네요. class Solution: def minimumOperationsToWriteY(self, grid: List[List[int]]) -> int: n = len(grid) def ttry(x, y): count = 0 for i in range((n // 2)): for j in range(n): if i == j: if grid[i][j] != x: count += 1 elif n-j-1 == i:..

3070. Count Submatrices with Top-Left Element and Sum Less Than k

사실 그렇게 어려운 문제는 아니었습니다. weekly contest에서 두번째로 나왔던 문제로, prefix sum을 사용해서, 각 row의 합을 저장해서 새로운 list에 저장하고, 새로운 row에서 iterate할 때는 새로운 row에서 그 row의 합들과 지금까지 더한 위의 row의 합을 더해주는 방식으로 해서 몇 번의 시행착오 끝에 풀어낼 수 있었습니다. class Solution: def countSubmatrices(self, grid: List[List[int]], k: int) -> int: m, n = len(grid[0]), len(grid) new_matrix = [[0 for _ in range(m)] for _ in range(n)] # print(new_matrix) count ..

metric learning / deep metric learning에 관하여

Metric learning은 Machine learning 의 한 분야로, object 간의 거리 함수를 학습하는데 초점을 맞춘다고 합니다. 이 거리 함수는 metric 공간에서의 similarity 또는 dissimilarity 를 결정하는데 사용된다고 합니다. k-nn(nearest neighbor 나, clustering 등의 방법에도 이용이 된다고 합니다. Deep Metric learning이란, 앞에서 설명한 Metric Learning을 Deep learning 에 적용시킨 것이라고 볼수 있을 것입니다. 각각의 데이터들의 거리를 임베딩 공간 측정해서, 유사한 객체는 서로 가깝게, 그렇지 않은 객체는 멀게 배치 합니다. 이미지 인식, 얼굴 검증, 추천 시스템 등의 작업에 유용하다고 합니다. ..

Machine Learning 2024.01.31

RAG란? 그리고 Langchain 을 이용한 구현까지

RAG란, Retrieval-Augmented Generation의 약자로, retriever(검색기) 파트와 generator(생성기) 파트로 나눠져 있습니다. retriever는 관련 정보를 Database에서 검색하고, 생성기는 이 정보를 사용하여서 최종 응답을 생성합니다. 관련 링크 : https://python.langchain.com/docs/use_cases/question_answering/ Q&A with RAG | 🦜️🔗 Langchain Overview python.langchain.com Indexing 이후에, (load -> split -> store)이후에, Vector Database 또는 Embedding model 에 저장한 후에, Retrieval 과 Generation..

Deep Learning/NLP 2024.01.23

git fetch 이후 merge 하기

보통 git pull할 때 가장 두려운 상황은 conflict나는 상황일 것입니다. 물론 clean하게 유지한다는 가정하에 git pull이 실패할 리는 없겠지만, 그래도 conflict를 피할 수 없는 상황은 무조건 나오기 마련입니다. 그걸 막기 위해서 생겨난 커맨드는 git fetch 입니다. ChatGPT에서 말해주는 fetch 이후 merge 방법입니다. 더보기 Q) what should I do after git fetch to merge? 1. Check Out the Branch You Want to Update: Make sure you're on the branch that you want to update with changes from the remote. Use git checkou..

Utils/Git 2023.12.15

augmentation을 통해서 data imbalance 맞춰주기

학습할 때, 가장 중요한 것 중 하나가 data balance를 맞춰 주는 것일 겁니다. 만약 두 개의 클래스가 한 개의 클래스는 100장, 한 개의 클래스는 1000장이 있다고 하면, 두 개의 클래스의 밸런스를 맞춰주기 위해서는 1000장을 100장으로 맞춰주기보다는 100장을 1000장으로 맞춰주는게 나을 것입니다. import os from tensorflow.keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img import numpy as np from PIL import Image, ImageEnhance ​ # Directory containing the images to augment input_dir = 'c..

ChatGPT 로 쓴 data split script (Image classification)

ChatGPT로 다음과 Image classification 관련해서 train, val, test 관련된 python script 를 써달라고 말해 봤습니다. 다음은 말한 ChatGPT Script 입니다. 더보기 write me a script in python that splits images into train/val/test. The source will have several directories with images in it. Target will be empty at first. the Target will output three directories, which will maintain the directory structure as the source directory. We shou..

원격으로 Jupyter notebook 사용하기

안녕하세요 오늘은 원격으로 Jupyter notebook에 접속하는 방법에 대해서 알아보도록 하겠습니다. 먼저 전제조건이 필요한데, 포트포워딩 등을 통해서 ssh 를 접속 할 수 있는 것을 기본조건으로 하겠습니다. ssh walkaroundthedevelop@10.22.33.444 로 접근할 수 있다는 걸 전제조건으로 합니다. 하지만 vim으로 작업하는건 너무 힘듭니다. 로컬이 아니라서 딜레이도 있을 거구요. 일단 연결하려는 곳에서 jupyter notebook 을 실행합니다. jupyter notebook --allow-root --ip 0.0.0.0 그 이후 연결하고자 하는 곳에서 브라우저에 다음과 같이 치면 됩니다. http://10.22.33.444:8888/ 이후 password 및 token을..

Network 2023.09.07

tf 에서 confusion matrix에서 actual value와 prediction value가 다른 경우

이미지 분류 모델을 test 하는데 있어서, test script를 짤 일이 있었습니다. confusion matrix를 만드는데, actual value와 prediction value을 다르게 만들고 싶어서 찾아봤습니다. 위의 경우와 같이 predicted value와 actual value가 같은 경우도 당연히 있고, 결국 맞출 수 있을것으로도 생각되지만, 어떤 경우에는 actual value 와 predicted value가 다른 경우도 있을 것입니다. 이에 대해서 한번 보았습니다. 일단 같을 때의 코드를 봅시다. import numpy as np import tensorflow as tf import pandas as pd def create_confusion_matrix(y_true, y_pr..

Machine Learning 2023.08.18