CartesianGeneticProgramming 을 윈도우즈에서 실행하는 경우 예를 들어
C:\dev\CartesianGeneticProgramming\julia scripts\gym.jl 을 실행 하면 logs 폴더에 파일이 생성 되어야 하는데
이 때 파일명이 2020-11-26T01:33:25.321.csv 형태 인데 윈도우에서는 사용할 수 없는 파일명이기 때문에 생성되지 않고 에러가 생겨
더 이상 진행되지 않는다.
이 문제는 gym.jl 파일에 ind = CGPInd(cfg, read(args[“ind”], String)) 에서 cfg.id를 사용하여 파일을 생성하는데 위의 파일명 처럼 생성되어 문제를 일으킨다.
cfg는 gym.jl 파일 cfg = get_config(args[“cfg”]; n_in=n_in, n_out=n_out)에서 얻어 오는데
get_configs 는 config.jl에 정의 되어 있는데 이 function은 import Cambrian.get_config 에서 override 되는 것인데 CartesianGeneticProgramming 패키지에 피료한 패키지 이다.
Cambrian 패키지는 https://github.com/d9w/Cambrian.jl 에 다운 받을 수 있는데 이 패키지의 config.jl에 보면 cfg.id가 아래 처럼 설정되는 것을 볼 수 있다.
cfg[“id”] = string(Dates.now()) 이 부분에서 생성하는 문자열이 id로 사용되는데 2020-11-26T01:33:25.321 형태가 파일명으로 사용되기 때문에 문제가 된다.
이를 해결 하기 위해 cfg[“id”] = Dates.format(Dates.now(), “yyyymmddHHMMSSsss”) 로 버꾸었다. 이는 “20201126013325321” 형태로 사용되어 문제가 없다.
이 개선 사항에 대해서는 아래 url에서 변경사항과 반영여부를 체크 해 볼 수 있다.
GIT https://github.com/d9w/CartesianGeneticProgramming.jl
반영이 되지 않은 경우 기존 Cambrian 패키지를 삭제 하고 아래 url에서 Cambrian 패키지를 설치 하면된다.
https://github.com/mrchaos/Cambrian.jl.git
pkg> add https://github.com/mrchaos/Cambrian.jl.git
다시 C:\dev\CartesianGeneticProgramming\julia scripts\gym.jl 를 실행하면 logs 폴더에 파일이 생성된 것을 볼 수 있다.
또한 test도 성공적으로 수행되는 것을 볼 수 있다.
pkg> test CartesianGeneticProgramming
참고로 CartesianGeneticProgramming 를 설치하는데는 python gym 패키지가 설치되어야 하는데 설치가 쉽지 않은 경우 아래 글을 참조 하면됨