일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 샤미르
- Adobe
- CC
- 완전 비밀 분산
- #암호학이론
- 디자인
- zero knowledge proof
- 블로그_이전_계획보다_지금_해야할게_더_많아서_유지예정
- 어도비
- haze #텐서플로 #tensorflow #ai
- 포토샵
- Shamir
- UX
- graph 3 coloring
- 비밀 분산 기법
- Today
- Total
For Beginners
aod-net 사용하는 방법 정리해두기 본문
일단 git에 들어가서 clone을 한다.
https://github.com/weber0522bb/AODnet-by-pytorch
사이트는 여기다.
그리고
내기준/ 코드다.
1. 먼저 아나콘다 설정한 곳에 아래의 코드를 넣는다.
python create_train.py --nyu C:\Users\Yejin\Desktop\testing\AODnet-by-pytorch --dataset C:\Users\Yejin\Desktop\testing\AODnet-by-pytorch\datasets\trainset
근데 위 코드를 넣으면 에러가 난다.
그러면 에러가 나는 줄의 require를 required라고 고치면 된다.
parser.add_argument('--dataset', type=str, require=True, help='path to synthesized hazy images dataset store')
요 내용을
parser.add_argument('--dataset', type=str, required=True, help='path to synthesized hazy images dataset store')
이렇게 고치면 된다.
일단 이 코드를 실행하고 나면 training을 위한 데이터 셋을 이미지 형태로 다 변환해놓는다.
아래 요거는 안해도 된다 랜덤 셀렉이 안된다.
python random_select.py --trainroot C:\Users\Yejin\Desktop\testing\AODnet-by-pytorch\datasets\trainset --valroot C:\Users\Yejin\Desktop\testing\AODnet-by-pytorch\datasets\valset
실행하게 되면
Traceback (most recent call last):
File "random_select.py", line 18, in
a = random.choice(os.listdir(train))
File "C:\ProgramData\Anaconda3\lib\random.py", line 260, in choice
raise IndexError('Cannot choose from an empty sequence') from None
IndexError: Cannot choose from an empty sequence
이런 에러와 함께 기존에 training된 자료들은 날라가고 valset으로 옮겨지므로 매우 귀찮은 작업이 되니까 굳이 안하는 것을 권함
그 다음에 경로를 train.py 있는 곳으로 바꾸어준다.
cd ..
python train.py --dataroot C:\Users\Yejin\Desktop\testing\AODnet-by-pytorch\datasets\trainset --valDataroot C:\Users\Yejin\Desktop\testing\AODnet-by-pytorch\datasets\valset --cuda
그렇게 되면 이런 식으로 된다.
Random Seed: 7520
Traceback (most recent call last):
File "train.py", line 77, in
seed=args.manualSeed)
File "train.py", line 67, in getLoader
num_workers=int(workers))
File "C:\ProgramData\Anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 802, in __init__
sampler = RandomSampler(dataset)
File "C:\ProgramData\Anaconda3\lib\site-packages\torch\utils\data\sampler.py", line 64, in __init__
"value, but got num_samples={}".format(self.num_samples))
ValueError: num_samples should be a positive integeral value, but got num_samples=0
일단 로딩은 잘 된다.
근데 코드 상의 샘플 넘버링이 잘 안된 것인가 일단은 num_sample에 대한 디버깅을 해보아야 할 것 같다.
일단은 내 생각인데, 기존에 valset validation 에러가 났기 때문에 잘 되지 않는 것 같다.
그래서 코드를 한번 들여다보려한다.
import argparse
import os
import random
import shutil
parser = argparse.ArgumentParser()
parser.add_argument('--trainroot', type=str, required=True, help='path to train directory')
parser.add_argument('--valroot', type=str, required=True, help='path to validation directory')
args = parser.parse_args()
print(args)
train = args.trainroot
val = args.valroot
if not os.path.exists(val):
os.makedirs(val)
for i in range(3169):
a = random.choice(os.listdir(train))
shutil.move((train+'/'+a), (val+'/'+a))
일단은 기존 random_select 코드의 경우는 다음과 같았다.
근데 문제는 random.choice 이 부분이 잘 먹지 않는다는 것이다.
그래서 코드를 뜯어봤다.
근데 보니까 애초에 training set자체의 값이 3169를 넘지 않는데 그거를 넘는다고 생각을 해서 그런 것 같다.
그래서 일단은 trainset을 만드는 과정을 여러번 해보면서 왜 개수가 적게 나오는지를 확인하는 것이 급선무인 것 같다.
홈 아무래도 드라이브상의 메모리 문제인듯하다. 그래서 이따가 d드라이브에서 다시 돌려보려구 한다.
'2021 이전 자료들 > AI' 카테고리의 다른 글
[Pytorch 정리] 시작합니다. (0) | 2019.05.15 |
---|---|
aod-net 사용하는 방법 정리해두기2 (0) | 2019.04.01 |
[인공지능]-1 (1) | 2018.12.26 |
[인공지능] 패턴인식2 (2) | 2017.12.04 |
[인공지능]땅따먹기 룰 피드백 받은 부분 정리 (0) | 2017.11.29 |