Python
[Pylance] Import could not be resolved from source (reportMissingModuleSource)
가상환경을 사용하는 경우 pylance가 가상환경에 설치된 모듈을 잡지 못해 발생하는 에러다. 실행은 잘 되기 때문에 무시해도 되지만, 자동완성이 안된다거나 노란색 밑줄이 거슬리는 문제가 있다. 해결법은 직접 모듈의 경로를 추가해주면 된다. 워크스페이스의 .vscode 폴더에 settings.json 파일을 위와 같이 작성해주면 에러가 사라진다. 가끔 settings.json 파일을 인식하지 못할 떄가 있는데, 그럴 때는 settings.json 파일을 .vscode 폴더 밖으로 옮겼다가 다시 원상복구 해주면 인식이 된다.
파이썬 closure
inner 함수 안에서의 count 변수는 상위 스코프의 count 변수를 참조한다. 하지만 이렇게 count += 1 을 추가해주면 오류가 발생한다. 왜 이 경우에는 상위 스코프의 count 변수를 참조할 수 없는 걸까? count += 1이 count = count + 1 과 같은 코드라는 걸 생각해보면 납득할만한 결과이다. count를 대입연산자를 이용해 정의하면 로컬 변수가 만들어지는데, 그 로컬 변수를 만들 때 count 값을 사용하기 때문..
[파이썬 테크닉] 로컬 변수처럼 작동하는 함수 파라미터
위 코드에서 a는 그저 함수의 파라미터일 뿐이므로, func()을 몇 번을 실행하든 [ ] 이 계속 출력될 것이라고 잘못 예상할 수 있다. 하지만 파라미터를 넘겨주지 않는 경우 a는 계속 같은 주소를 참조하기 때문에 위와 같은 결과가 나오게 된다. 근데 직관적이지 않은 개념이라 지양해야할 패턴이라고 생각함. 함수 선언과 동시에 변수를 선언하는 효과가 나기 때문에 잘만 쓰면 숏코딩할 때는 유용할수도..
[python] 파이썬 PIL로 투명한 이미지 크기 조정, 합성하기
위 이미지(test.png)의 크기는 (400, 200) 이지만, (700, 700)으로 조정해보려고 한다. 단순히 resize하면 이미지가 찌그러지기 때문에 paste를 활용해야한다. 배경은 투명색을 유지한다. 간단하게 (700, 700) 크기의 이미지 객체를 만들고 거기에 이미지를 paste하면 된다. from PIL import Image baseLayerSize = (700, 700) baseLayer = Image.new("RGBA", baseLayerSize) image = Image.open('test.png') baseLayer.paste(image) baseLayer.show() baseLayer.save('result.png') 투명해서 잘 보이진 않지만 크기가 조정되었다. 이렇게 하면..
[머신러닝] 파이토치 텐서 (tensor)의 연산
1. 텐서 기초 a. 텐서 선언하기 1차원 텐서 tensor = torch.FloatTensor([0., 1., 2., 3.]) 2차원 텐서 tensor = torch.FloatTensor([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.], [10., 11., 12.]]) print(tensor.dim()) print(tensor.size()) print(tensor[:, :2]) # 첫번째 차원 전체 선택, 두번쨰 차원의 0번째, 1번째 요소 선택 2 torch.Size([4, 3]) tensor([[ 1., 2.], [ 4., 5.], [ 7., 8.], [10., 11.]] 데이터로부터 직접 생성 data = [[1, 2],[3, 4]] x_data = torch.tenso..