Thursday, December 23, 2021

Matlab 실행 시 처음 출력되는 작업 폴더 변경하기

  Matlab 실행 시 좌측에 폴더 트리가 뜨게 되는데...

보통은 내가 작업하던 폴더가 아닌 Matlab이 설치된 기본 폴더가 뜨기 때문에 항상 작업하던 폴더로 옮겨가는 절차가 필요해서 불편했다.


이를 해결하기 위해서는 Matlab이 설치된 위치의 bin폴더 안에 

"startup.m" 스크립트 파일 하나만 생성해주면 간단하게 해결이 된다.


이 startup.m은 Matlab 실행 시 자동으로 초기화 절차를 수행해주는 스크립트이다.

기동 시 필요한 작업은 여기에 전부 포함시켜 두면 편하다.


우선 만들어져서 사용되고 있는 startup.m이 존재하는지 확인

>> which startup

(있을 경우 이미 해당 파일이 존재하기 때문에 그냥 수정해서 사용하면 된다. 없으면 생성)


>> edit('Matlab설치된 폴더명\bin\startup.m')

(해당 파일 생성 또는 수정)


만약 G:\develop\Matlab 폴더를 시작시 기본 폴더로 지정하고 싶다면,


addpath(genpath('G:\develop\Matlab'))  %  하위 폴더 전체를 경로에 추가함

cd('G:\develop\Matlab')    % 시작 기본 폴더로 이동


두 줄만 추가 후 파일 저장하면 다음번 Matlab 시작 시 자동으로 해당 폴더에서 시작된다.

Tuesday, December 7, 2021

Anaconda를 이용한 파이썬 개발환경 세팅하기

쓸 때만 기억나지 시간 지나면 금방 잊어 버리는 아나콘다 개발환경 세팅하기


1) 가상 환경 생성하기

$ conda create -n [env_name] python=3.7.11 anaconda

(마지막에 anaconda를 붙여주면 아나콘다 기본툴까지 함께 설치됨)


2) 가상 환경 활성화하기

$ conda activate [env_name]

(비활성화 시 deactivate 옵션 사용)


3) 가장 자주 사용하는 파이썬 패키지들 설치하기

$ conda install numpy, scipy, matplotlib, opencv

$ conda install -c conda-forge pyinstaller=4.7

$ conda install -c conda-forge python-pptx

$ conda install -c anaconda openpyxl

$ conda install -c davidbroadhurst csaps

$ conda install -c intel scikit-learn


4) 가상환경 삭제 하기

$ conda remove --name [env_name] -all


Tuesday, September 7, 2021

Ubuntu 멀티부팅 GRUB 기본값 변경하기

 우분투와 윈도우10을 동시에 사용하다 보면 멀티부팅을 위해 GRUB을 사용하기 마련인데... 경우에 따라서는 이에 대한 설정을 변경해야 될 필요가 생기게 된다.


1. 부팅 시 Grub 화면에서 OS 순서 기억하기... [0번 인덱스부터 시작함]

   내 피씨의 경우에는, 

   0번 Ubuntu, 1번 Advanced Options for Ubuntu, 2번이 윈도우 boot manager


2. 우분투로 로그인 후 터미널 창에서 Grub 설정 파일 로드

   $ sudo gedit /etc/default/grub


   Grub 설정 파일 내용 중 아래의 내용을 수정함

   GRUB_DEFAULT=0 항목을 원하는 인덱스로 변경, 0은 우분투, 2는 윈도우 초기 선택

   GRUB_TIMEOUT=10 항목을 원하는 숫자로 입력, 초기 선택 대기 시간을 선택 가능함


3. 수정 완료 후 수정사항을 반영

   $ sudo update-grub


이후 재부팅하면 수정된 내용이 반영되어 나타남.


끝.

Thursday, March 11, 2021

Tensorflow 텐서플로우 모델 출력에서 Median 값 추출하기

 자주는 아니지만 어쩌다 한번씩 이미지의 출력 통계치를 활용해서 픽셀 값들을 조정해주고 싶을 때가 있다. 평균이야 그냥 reduce_mean 사용하면 쉽게 구할 수 있어서 기억할 것도 없는데... median 값은 그 함수가 저기 안쪽에 처 박혀 있어서 쓸 때마다 찾아봐야 기억이 난다 -_-;;


아래는 그 예시이다.

tf.contrib.distributions.percentile(y_real_pixel, 50.)


첫번째 인수는 이미지를 저장하고 있는 텐서의 이름이고, 두번째 인수에는 그 위치 값을 지정해서 구할 수 있는데... median은 중앙값이므로 그냥 50.0 지정 해주면 된다.

Tuesday, March 9, 2021

Tensorflow 텐서플로우 네트워크 중간에서 값 추출하기 or 타일 생성하기

 텐서플로우 네트워크를 디자인 하다보면,

특정 계수를 뽑아 내거나 혹은 타일 형태로 생성하여 다른 입력과 곱해야 할 경우가 생긴다.

이 때, 두 텐서 사이에 크기가 맞지 않으면 연산이 되질 않아 여간 귀찮은게 아님 -_-


아무튼 이럴 때 tf.split과 tf.tile 조합을 통해 원하는 출력을 만들어 낼 수 있다.


예시는 아래를 참조


gain, offset = tf.split(h_linear_4, num_or_size_splits=2, axis=1)

gain_tile = tf.tile(gain, [1, 128 * 128])
gain_tile = tf.reshape(gain_tile, [-1, 128, 128])
gain_tile = tf.expand_dims(gain_tile, axis=3)

offset_tile = tf.tile(offset, [1, 128 * 128])
offset_tile = tf.reshape(offset_tile, [-1, 128, 128])
offset_tile = tf.expand_dims(offset_tile, axis=3)

output = data_pan * gain_tile + offset_tile

Tuesday, January 26, 2021

우분투 Proxy 네트워크 환경에서의 apt-get 환경 설정 방법

회사 네트워크에 물려서 사용하다 보니 우분투 세팅에, 특히 네트워크 관련 모든 설정들이 엉망이다.
apt-get은 특히나 많이 사용되는 명령어인데, proxy 환경에서 사용하기 위해서는 설정 파일을 별도로 생성하여 설정해주어야 한다.

우선, /etc/apt/apt.conf 파일을 nano에디터를 사용해서 신규로 생성해준다.
(기존에 설정 파일이 있는 경우에는 그냥 그 파일을 오픈)

>> sudo nano ./apt.conf


Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Acquire::ftp::Proxy "ftp://Username:Password@proxy.foo.bar.edu.au:8080";
Acquire::https::Proxy "https://Username:Password@proxy.foo.bar.edu.au:8080";

위의 내용을 작성 후 저장하면 완료!!!

마지막 부분에 세미콜론 잊지말것.

우분투에서 Proxy 설정하기

 proxy 서버의 설정.. (사내의 경우 proxy 서버를 사용하기 때문에.. proxy서버 설정을 한다.)
1 Firefox 에서 proxy 서버의 설정
Firefox 실행 -> Edit -> Preference -> Advanced -> Settings -> Automatic proxy configuration URL
http://168.219.61.251:8088/samsungcs.pac 이라고 입력후 저장.

2 /root/.bashrc 파일 수정
/root.bashrc 파일에.. 
export http_proxy="http://168.219.61.250:8080"
export ftp_proxy="http://168.219.61.250:8080" 으로 입력 후 저장.. (적용시키려면.. source ./.bashrc 를 입력)

3. 시냅틱 꾸러미관리자에서 http, ftp proxy정보를 수정
    
4 (이건안해도 되는데..) /etc/apt/apt.conf 파일의 수정
만약 file이 없으면 새로 생성한다. 파일 생성후 아래와 같이 입력후 저장..
Accuire::http::Proxy "http://168.219.61.251:8080" 입력후 저장 또는
Accuire {
Retires "0";
HTTP {
};
}; 입력후 저장..