반응형

⌨Programming

    파이썬 global & nonlocal 키워드

    global & nonlocal 프로그래머스 문제를 풀다가 변수 scope관련 문제가 생겨서 정리하는 포스팅 프로그래머스는 나머지 알고리즘문제 풀이 사이트와 달리 아래와 같이 Solution함수를 제출하는 형식이다 흔히 아는 global키워드는 함수 내부에서 함수 외부에 있는 전역변수에 대한 수정을 할 때 선언한다 global을 선언하지 않고 함수 내부에서 n에 관한 업데이트를 하게된다면 바깥 scope의 n의 내용은 변경되지 않는다 ## 예시 n = 1 def solution(num,target): global n n += 1 이번엔 아래와 같은 상황을 생각해보자, Solution 내부에 dfs() 라는 함수를 만들고 solution에 있는 n을 수정하고 싶을 때 위와 같이 global을 사용하게 되면..

    파이썬으로 S3 bucket의 다양한 정보를 가져와보자(오브젝트 url, 생성시간 etc...)

    파이썬을 이용해 S3 bucket의 정보를 가져와 보자! S3는 AWS에서 제공하는 Simple Storage Service이다. 간단하게 그냥 편리한 저장소라고 생각하자! S3에는 object가 bucket에 저장되는데 저장(또는 업로드)만 해놓으면 외장하드랑 다를바가 없다 예를 들어 이미지를 업로드 하였을경우 이 이미지 오브젝트에는 생성시간, 이미지url, 이미지 type등 다양한 정보가 기록되고 저장된 정보를 다양한 방법으로 사용할 수도 있다. 그러나, 사진이 한 두장인 경우 이러한 정보를 일일이 복사 붙여넣기를 하든 타이핑을 하든 상관없지만 갯수가 많아지거나 어떤 프로젝트를 만들고 싶을 때는 곤란한 일이 생길 것이다. 아래 깃허브에는 파이썬을 사용하여 정보를 가져오는 코드들이 작성되어 있다. 큰 ..

    [python, 파이썬] sum 함수를 이용한 차원축소 및 병합

    sum 함수를 이용한 차원축소 및 병합 여태까지 알던 파이썬 내장함수인 sum의 기능은 단순히 iterable한 객체들의 합을 리턴해주는 걸로만 알고있었다. 내부 docs를 봐도 아래처럼 start값을 지정해주면 iterable의 합과 start를 더해준다까지만 나와있을 뿐이다. 그런데 sum을 이용해 리스트의 차원을 낮추고 병합까지 하는 기능을 이용할 수 있다! sum(다차원 리스트, [ ])를 통해 차원을 축소하고 병합까지 가능하다. 아래는 예시이다 arr = [[1, 0, 3], [4, 0, 6]] print(sum(arr, [])) # 결과 : [1, 0, 3, 4, 0, 6] arr = [[[1, 0, 3], [0, 1, 2]], [[4,5,6], [7,8,9]]] print(sum(arr, [..

    파이썬 JSON파일 다루기(읽기, 쓰기, 수정)

    JSON파일을 다룰 때 매번 검색하는 과정이 귀찮아져서 정리해두려 작성하는 포스튕 기본적으로 open()을 통해 파일을 다양한 방식으로 열 수 있다. 'w' : 쓰기전용(파일이 있으면 덮어씌움) 'a' : 쓰기전용(파일이 있으면 덧붙임) 'x' : 쓰기전용(파일이 있으면 에러 발생) 'r' : 읽기전용(파일이 없으면 에러발생) 그러나 open()을 사용하면 아래와 같이 close()로 외부자원 연결을 해제해야하는데 번거롭다 file = open('./test.txt', 'w') file.close() 이는 with~as 문을 이용하면 파일 닫기(close)를 생략할 수 있다. 아래에서 JSON파일을 다루는 법과 함께 사용법을 Araboza JSON 파일 읽기 json을 불러올 때는 json 모듈내의 lo..

    [pytorch]모델저장&불러오기

    모델저장 및 불러오기 Introduction 부덕이 부하 부팡이는 오늘도 고민이다... 부팡 : 부덕아 매번 모델을 학습시키는건 시간도 많이들고 비효율적인 것 같아... 그리고 구글에서 나온 모델을 써보고 싶은데 이거 내 컴퓨터로 학습시킬 수 있는거 맞아..? 부덕🦆🐤 : 으휴... 너 맨날 그렇게 한거야? 지금 세상이 어떤 세상인데 다 방법이 있찌~ 딥러닝 모델을 사용할 때 마다 학습을 새로 시킨다면 엄청난 cost가 발생한다 또한 남들에게 공유하거나 다른모델을 내가 사용할 때도 문제가 발생할 것이다 따라서, 학습한 모델을 저장할 필요성이 매우매우매우 있다 이러한 기능에 대해 AraBoza 모델을 저장하는 방법은 크게 2가지로 나뉜다 모델전체를 저장하거나 checkpoint를 저장한다 model.sav..

    [pytorch] 모델제작(torch.nn.Module)

    어떻게 딥러닝 모델을 만들까? 단순하게 기능만 나열한다면 보기도 힘들고 수정도 힘들 것이다 PyTorch에는 모델을 만들기 위한 기능들을 모아 놓은 클래스를 제공한다, 이것이 바로 nn.Module이다 ! 아래의 Documents를 통해 다양한 설명을 볼 수 있다 [Pytorch 공식 Documents](https://pytorch.org/docs/stable/generated/torch.nn.Module.html?highlight=nn%20module#torch.nn.Module) nn.Module 딥러닝 모델의 Layer의 기본적인 class Input, Output, Forward, Backward같이 모델에 필요한 것들을 정의 학습의 대상이되는 parameter(tensor) 정의 레이어를 쌓는다..

    [pytorch]Pytorch란 ?

    Introduction to PyTorch 딥러닝 프레임워크인 PyTorch에 대해 AraBoza 현재 우리가 살고있는 세상은 너무너무너무 발전되어있다 💻 딥러닝도 마찬가지이다, 이미 다른 사람들이 너무 잘 만들어 놓은 것들이 존재한다 그 중 가장 많이 쓰이는 딥러닝 프레임워크는 meta(구 페이스북)가 만든 PyTorch와 Google이 만든TensorFlow이다 TensorFlow와 PyTorch의 가장 큰 차이점은 그래프계산이다 TensorFlow는 Define and Run(Static graps)로 그래프를 먼저 정의하고 실행시점에 데이터를 feed하고 PyTorch는 Define by Run(Dynamic computation graphs)로 실행시점에서 그래프를 그린다 TF는 cloud, M..