본문 바로가기
반응형

개발 일기32

[Skorch] pytorch에 GirdSearchCV 적용하기 모 논문을 보다가 sklearn에 최적의 hyperparameter를 찾기위해 GridSearchCV를 사용한다는 것을 알게되었다. 세상사람들 다 알고 있는데 나만 몰랐던 사실이었나보다... 무튼 그러다가 pytorch로 만든 DNN에도 적용할 수 있을까 싶어 chat GPT에 물어봤는데 뭐.. BaseEstimator를 상속받는wrapper class를 만들고 어쩌구저쩌구 해서 해봤는데 계속 오류가 나서 화나서 포기하려다가!!!!!!!! skorch라는 라이브러리를 알게되었다. Skorch에 대해 chat GPT에 물어보니 아래와 같이 답변해줬다. Skorch는 Scikit-learn과 PyTorch를 연결해주는 도구로, Scikit-learn과 PyTorch의 강점을 결합하여 사용할 수 있도록 도와줍.. 2023. 7. 6.
파이참 으로 원격 서버 연결하기 VS Code로 SSH 연결하여 사용하고 있는데 이전 게시글에 구세주 같은 댓글이 달렸다. 왜 지금까지 파이참을 사용하지 않았었냐면.. 까먹고있었다.. 사실 SSH연결이 되는지도 몰랐고... 연구실 사람들도 안쓰길래 저 기억 뒷편으로 넘기고있었는데 이렇게 댓글을 주시다니 감사합니다. 생각해보면... 노트패드도 원격 연결이 되는데 파이참이 안될리가 없다. 그래서 잠깐 시간이 난 김에 바로 설치했다. 대학원생으로 진화한 기념으로 대학원용 새 웹메일 계정을 만들고 학생 계정으로 젯브레인에 가입! 파이참은 프로페셔널로 설치해주었다. PyCharm 2022.3.3 (Professional Edition)! 설치된 파이참을 처음 열면 이렇게 나오는데, Beta 버전으로 뭔가 있어서 이걸로 해보았다. Remote D.. 2023. 3. 22.
내가 쓰려고 정리하는 dash 문법 정리 연구실 서버는 ubuntu 인데.. shell script를 만들어 쓰려고 하니 뭔가 안됐다. 찾아보니 우분투 몇 버전 이상은 bash가 아니라 dash고 이걸 bash로 바꾸려면 뭔가 설정을 해야한다고 하는데 난 쫄보라.. 다른 사람들이 그 전에 뭘 어떻게 해놨을지도 모르니까.. 내가 서버에 맞춰 살기로했다.. 근데 검색해도 다 bash로 바꿔쓰는 것만 나왔다. 뭔가 bash랑 비슷하면서 안되니까 너무 짜증남.. 결국 하나하나 다 테스트 해보면서 대충 사용했는데 호옥시 나같은 사람들을 위해서 정리해보는 dash 문법! 뭐 대단한건 아니고 그냥 기본 문법밖에 없다 ㅎㅎ 왜냐면 내가 기본 문법밖에 안썼으니까 ^__^ 0. 파일 설정 #!/bin/dash ### 보통 sh 파일을 만들 때 저 파일 부분을 #.. 2023. 3. 9.
VS Code SSH로 원격 서버 연결하기 웹개발을 할 때는 로컬에서 작업 후 사내에 구축된 gitlab에 push를 하면 Jenkins를 실행시켜 빌드를 시켰다. 그렇다면 머신러닝 딥러닝을 위한 파이썬 코드는...?? 어떻게..?? 방법은 여러가지겠지만 같은 연구실에 있는 친구들은 주로 노트패드에 SFTP를 연결해서 코드를 수정하고, mobaXterm과같은 원격을 켜서 서버에서 실행시키는 방법을 주로 사용했다고 한다. 충격의 도가니탕.. 노트패드라니.. 나도 설마 이렇게 해야하나 저런 비효율적인 방법이 다 있나 충격의 도가니탕에서 헤매던 중 연구실 친구가 VS Code에 SSH를 연결하여 코드를 수정하는 방법을 알려주었다. 나의 구세주.. 까먹을 수 있으니 포스팅! 1. Remote Development Extension 설치 VS Code를 .. 2023. 2. 21.
[Pytorch|ERROR] index out of range in self pytorch로 rnn 텍스트 생성모델 만들기 도전을 하고 있는데, 임베딩 레이어에서 index out of range in self 이런 에러가 발생하였다. 예제랑 똑같이했다고 생각했는데 왜 이런 에러가 발생할까.... 인덱스? 잘 맞는데.. 왜 그럴까.. 하고 검색을 해봤는데난 바보로 결론이 났다^^.. vocab을 만들 때, 텍스트의 길이를 맞추기 위해 padding을 후반에 넣어주었다. 이때, 이미 start_code와 end_code를 0,1번에 사용하고 있어 괜찮겠지 싶어 -1 값으로 패딩값을 넣어주었다.. [0,3,3,7,-1,-1,-1,-1,-1,-1-1,-1,-1,-1] 이러니 당연히 안되지... 귀찮음을 피하려다가 오히려 망하는 지름길로 향했다. ^^... 정확하게 코드를 뜯어보지 않아.. 2023. 1. 28.
[JENKINS] 젠킨스 기타 설정 (Poll SCM | SLACK 연동) 1. Poll SCM 특정한 시간에 프로젝트를 빌드를 하도록 설정하는 기능입니다. 프로젝트 구성의 빌드유발에서 Poll SCM을 선택합니다. Schedule에서 원하는 시간 스케쥴링을 입력하고 Ignore post-commit hooks 여부를 결정합니다 만약 변경사항이 없다면 빌드하지않습니다. 2. Slack 알림받기 슬랙에 들어가 더보기 → 앱을 클릭 후 Jenkins를 선택합니다. 관리페이지가 나타나면 왼쪽에 Slcak에 추가하기를 클릭합니다. 그 후, 원하는 채널을 선택하고 하단의 버튼을 클릭합니다. 생성된 토큰만 따로 복사 후, 설정저장을 누릅니다. 다시 Jenkins로 돌아와서 Jenkins 관리 → 시스템 구성으로 들어가 Slack을 찾습니다. Workspace는 Jenkins도메인의 이름 .. 2022. 11. 29.
[JENKINS] Jenkins-GitLab 프로젝트 빌드 및 실행하기 해당 문서는 Spring프로젝트 빌드 설정을 기준으로 작성하였습니다. 2-4. Build Steps와 2-5. 빌드 후 조치는 Spring관련 설정이오니 참고부탁드립니다 :) 1. GitLab 토큰 발급 및 등록 GitLab로그인 후, 토큰을 발급받습니다. Token name은 임의로 설정하면 되며, Expiration date는 설정하지 않습니다.(갱신하지 않기 위해) scopes는 api와 read_user를 선택한 후, Create personal access token을 클릭해줍니다. 하단의 토큰을 복사해 보관해둡니다. (만약 복사하지 않고 창을 닫았다면 생성한 토큰 삭제 후 위의 과정을 반복합니다. ) Jenkins로 접속하여 Jenkins 관리 → 시스템 설정으로 들어갑니다. 밑으로 스크롤 하.. 2022. 11. 29.
[JENKINS] Jenkins 설치하기 들어가기에 앞서, 22년 6월 릴리즈 버전부터 jenkins를 설치할 때 필요로 하는 java 버전이 11또는 17로 바뀌었습니다. JAVA 8 버전을 설치 후, yum install jenkins 를 입력했는데 오류가 발생한다면, Java 버전을 새로 설치해야합니다. 자세한 내용은 Jenkins 홈페이지를 확인해주세요 :) 1. JAVA 설치하기 # Java 설치 yum install java-11-openjdk jenkins는 java 기반으로 작동되기 때문에 java를 설치해야합니다. 만약 해당 버전이 설치되어있다면 해당파트는 스킵해도 무방합니다. 저같은 경우 실행 할 프로젝트가 JAVA 8을 사용하고 있고, JAVA_HOME에 등록을 하였기 때문에 11버전을 따로 설치하였습니다. 이럴 경우 일단 .. 2022. 9. 30.
Spring security (접근권한 변경) 만약 프로젝트가 실행되고있는 중간에 접근권한을 변경하려면 어떻게 해야할까? 많은 방식을 찾아봤지만 딱히 원하는 방법은 없었다.. spring 버전 2.7미만이었을 때는 이 블로그에서와 같이 Checker를 만들어서 적용하는 방법이 가능했는데, 이 방법은 사용자들이 api에 접근을 할 때마다 DB에서 관련 정보를 불러와 체크해야하는 단점이 있었고, 2.7 이상에서는 해당 방법이 적용되지 않는것 같았다. (내가 멍청해서 안된걸지도..^^) 어찌어찌 머리를 굴려서 생각해보니, 아예 필터쪽에서 관련 데이터들을 바꿔주면 되는거 아닌가? 라는 생각이 들었고, 몇번의 삽질끝에 해당 기능을 만들 수 있었다. 본 포스팅의 코드는 여기서 확인 가능합니다😉 기본적인 Security 설정은 이 포스팅을 기초로 하였고, Sec.. 2022. 9. 6.
Spring Security 설정 (Dynamic) 권한 설정을 Hierarchy를 이용해 적용하는 방법도 있지만, 동적으로 설정해주는 것도 가능하다. 예를들어, /user URL에 GET과 POST 두 가지가 있는데, POST는 ROLE_ADMIN만 접근 가능하다면? Hierarchy 설정은 이런부분에서 유연하게 대처할 수 없다. 이런 상황에서 동적으로 접근권한을 설정한다면 더 유연하게 사용할 수 있으며 컨트롤러에 불필요한 어노테이션(@PreAuthorize)을 붙이지 않아도 된다. 단점은 DB에 권한 관련 설계를 할 때, 어떻게 설계하느냐에 따라 구조가 복잡해질 수 있다는 점이다. 본 포스팅의 코드는 여기서 확인 가능합니다😉 이 포스팅은 DB 설계까지는 하지 않고, 하드코딩으로.. 아래와 같이 접근권한을 제한하여 개발을 진행하려한다. GET POST .. 2022. 9. 2.
반응형