▮Knock Knock
학습 후 메일, 슬랙 등 원하는 곳으로 학습 종료 알람을 해주는 라이브러리
pip install knockknock
from knockknock import email_sender
@email_sender(recipient_emails=["<your_email@address.com>", "<your_second_email@address.com>"], sender_email="<grandma's_email@gmail.com>")
def train_your_nicest_model(your_nicest_parameters):
import time
time.sleep(10000)
return {'loss': 0.9} # Optional return value
github 링크 : 사용법
▮dict.fromkeys(seq, value)
- 딕셔너리를 생성할 때 사용하는 메소드
- seq : 생성하려는 dictionary의 키 목록
- value : 생성하려는 dictionary의 값
seq = ('name', 'age', 'sex')
dict_1 = dict.fromkeys(seq)
print(dict_1)
dict_2 = dict.fromkeys(seq, 10)
print(dict_2)
## result ##
{'age':None, 'name':None, 'sex':None}
{'age':10, 'name':10, 'sex':10}
▮ contextmanger로 timer 만들기
@contextmanager
def timer(name):
t0 = time.time()
yield
print(f"[{name}] done in {time.time() - t0:.3f} s")
with timer("transform"):
query_vec = self.tfidfv.transform([query])
▮ logging
Python의 기본 내장 모듈 logging
import logging
# logger 생성
logger = logging.getLogger(__name__)
# 로그의 출력 기준 설정
LOG_FORMAT = "%(asctime)s - %(message)s"
logging.basicConfig(
level=logging.INFO,
format=LOG_FORMAT,
datefmt="%m/%d/%Y %H:%M:%S",
handlers=[logging.StreamHandler(sys.stdout)],
)
# 파일에 로그 저장 기능 추가
file_handler = logging.FileHandler("./logs/DPR_logs.log", mode="a", encoding="utf-8")
file_handler.setFormatter(logging.Formatter(LOG_FORMAT))
logger.addHandler(file_handler)
# 로그 기록
logger.info("***** Running training *****")
logger.info(" Num Epochs = %d", self.args.num_train_epochs)
logger.info(" batch size = %d", self.args.per_device_train_batch_size)
▮ 브랜치 삭제
// 로컬에서 브랜치 삭제
git branch -D <로컬브랜치명>
// 원격에서 브랜치 삭제
git push origin --delete <원격브랜치명>