먼저 아래 사이트에 자세히 나와있다.

 

stackoverflow.com/questions/15345790/scipy-misc-module-has-no-attribute-imread

 

버전이 1.2.0이상인 경우, imread가 동작하지 않는다고 한다.

 

그래서 나는 그냥 이렇게 해주었다.

다른 방법들도 있는데, 나중에 문제 생기면 가상환경상에서 scipy 버전 업그레이드하면 되니까.

pip install scipy==1.1.0

 

참고로 해당 방법은 관리자권한으로 실행을 해야 가능하다.

 

+ 사실 이 방법은 귀찮아서 이렇게 한 것이고

scipy도 imageio인가 변경된 라이브러리를 새로 이용하는 것을 권장한다고 나온다.

 

h5py 라는 확장자를 사용하기 위해서 코드를 쓸 일이 있었는데,

다음과 같은 에러가 발생.

 

 

NameError: name 'h5py' is not defined


맨 위쪽에 import 부에서 해당 코드를 넣으면 된다.

 

import h5py
(필요 시에 추가할 코드: import numpy as np)

 

이렇게 하면 에러가 해결된다.

아래는 내가 해결한 코드로 수행한 결과이다.

 

나중에 내가 참고를 하기 위해, 해당 코드를 넣어두겠다.

 

from os import listdir
from os.path import splitext
import h5py
import numpy as np 

def convert_file(input_dir, filename, output_dir):
    filepath = input_dir + '/' + filename
    fin = open(filepath, 'rb')
    binary_data = fin.read()
    new_filepath = output_dir + '/' + filename[:-4] + '.hdf5'
    f = h5py.File(new_filepath)
    dt = h5py.special_dtype(vlen=np.dtype('uint8'))
    dset = f.create_dataset('binary_data', (100, ), dtype=dt)
    dset[0] = np.fromstring(binary_data, dtype='uint8')


for file in listdir('./data/'):
	filename, extension = splitext(file)
	convert_file('./data', file, './data2')

 

코드는 해당 사이트에서 참고하여 만들었다.

stackoverflow.com/questions/28170623/how-to-read-hdf5-files-in-python

해결 방법을 찾는 동시에 글을 쓰는 이 상황.

졸업 논문을 아직도 서론까지밖에 못썼는데

일주일 안으로 이 컴퓨터를 고쳐서 논문과 함께 실험을 더 할 수 있을지 모르겠다.

 

뭐 여튼 시간을 아끼면 어떻게든 되겠지.

 nvidia smi로 확인해본 결과 GPU있는데

왜 자꾸 아무것도 못하는지 이해가 안감.

보니까 GPU로 아예 안돌아간다는 것을 확인.

 

아나콘다 문제일 수도 있어서(아나콘다를 깐 시점이 저번 GPU 때니까)

아나콘다를 삭제해보기로 함.

 

아나콘다 삭제했고 repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe 이거 다시 깔음.

그리고 환경변수 cuda랑 아나콘다에 맞게 다시 셋팅해준다.

 

그러면 다시 재부팅하겠다.

아나콘다는 이제 인식이 잘 된다.

그럼 기존에 있던 가상환경 폴더를 들어가보겠다.

그냥 activate ntire라고 치면 되나보다.

 

그러면 이제 환경을 확인해보겠다.

cuda가 달라졌으니, 이거는 다르게 설정해주어야 할것같아서 다시 재설치.
가상환경도 다시 셋팅해주기 위해서

base 제외 기존 가상환경 모두 삭제.

 

가상환경 다시 만들기.

 

그리고 pytorch 랑 기타 설정사항 설치하기

conda install pytorch==1.0.1 torchvision==0.2.2 cudatoolkit=9.0 -c pytorch

나는 이거 입력해줌.

그리고 다른 부분들은 저자의 requirement 문서를 이용해서 다운로드 받음.

C가 cpu 의 C가 아니라 computing 의 C라는 것을 알았다.

이게 원래 이정도 드는 거라는걸 알게 되었다.

 

저번에 했던 에러 캡쳐화면이 없는데, 이게 돌아가고 있는거란다.

이게 RTX 3090의 위력인가..

아니 성능 개선을 어떻게 하면

내가 돌아가는지 안돌아가는지도 모르게 느껴짐,..

 

아 물론 지금 에포크가 하나도 출력되었다고 안뜨고 그냥 돌기만 해서..

그렇게 느껴진 것같기도하고...

여튼 뭔가 출력된다면 더 정리하겠다.

 

 

원인을 알았다.
CUDA 10에서는 해당 gpu가 작동하지 않는다.

그래서 CUDA 11로 바꾼 결과, 트레이닝이 돌아간다는 것을 확인하였고,

트레이닝 중간에 파워서플라이(750W)도 부족하여 컴퓨터가 꺼지는 것을 확인하였다.

그래서 트레이닝 돌아가도록 파워를 오늘내로 바꾸기로 하였다.

문제 상황

ntire 가상환경에서 test.py를 구동하려는 시도중이었다.

python test.py ./configs/test/test_ntire.json ./wgts/full-ntire/DUAL_8.ckpt

이렇게 테스트를 시도해보자.

 

학습된 weight 파일의 경로는 다음과 같다.

 

그런데 다음과 같은 에러가 발생했다.

RuntimeError: Error(s) in loading state_dict for DataParallel: 
Missing key(s) in state_dict: "module.trans.in_block.0.weight".....

 

해결을 위한 시도

DataParallel이란 내용은 GPU를 두 개 이상 이용할 경우에 사용하는 것이기 때문에, 하나만 사용하는 경우

DataParallel이라는 코드 부분을 지워주면 된다.

나의 경우, 

위와 같이 nn.DataParallel이라는 부분을 test.py 코드에서 지워주었더니 정상 동작하였다.

👇 여기서부터는 해결을 위해 삽질한 부분 👇

(필요하신 분들만 참고하세요. 아래 내용으로는 해결이 되지 않았습니다.)

 

파일을 불러올 때, 원하는 부분이 없는 파일이었기 때문에, 이런 에러가 발생한 것이라고 생각하여, 경로명을 다르게 설정해보기로 했다.

경로 상에 보니까 json file 이 같이 저장되는 것으로 보아, 해당 json 파일로 경로를 변경해주었을 때, 어떤 결과를 내는 지 확인해보기로 했다.

python test.py ./wgts/full-ntire/DUAL_8.json ./wgts/full-ntire/DUAL_8.ckpt

그랬더니 다음과 같은 에러가 발생했다.

  File "test.py", line 21, in <module>
    if not os.path.isdir(opt['results_path']):
KeyError: 'results_path'

기존 코드에서는 다음과 같은 에러는 없었기 때문에, 기존 json 파일의 양식과 다른 점이 있는지를 파악해보았다.

 

매우 다르다는 것을 확인했고, 처음에 작성했던 코드가 더 맞다는 것을 알았다.

is_train 이 1로 설정되어야 한다는 생각이 들었다.

 

하지만 파라미터를 1로 바꾸어도 같은 결과가 발생하였다.

아무래도 트레이닝이 다 되지 않은 상황에서 중단한 중간값을 결과로 받아들이려고 해서 이런 문제가 생기는 것 같아,

다시 파라미터를 학습해서 시도해보기로 했다.

 

그래서 다시 학습을 해서  파라미터를 입력했는데 같은 에러가 발생했다.

 

그래서 학습상의 문제는 아니라고 판단하고, 문제를 찾아보기 시작하였다.

 

nn.Parallel을 이용해서 학습한 모델이기 때문에 똑같이 test에도 Parallel을 이용해서 test를 했는데,

왜 이런 에러가 났는지 모르겠어서

사이트를 찾아보았는데, pytorch를 다운그레이드하면 구동이 된다는 사례가 있어서, 

conda install pytorch==0.4.1 cuda100 -c pytorch

를 입력해주었다.

 

 

 

그래서 이렇게 하고 다시 학습을 해주었다.

왜냐면 버전이 달라서, 학습 방법이 다르다는 의견이 있기 때문이다.

 

기존에 학습된 것들을 지우고 재학습 해보겠다.

 

참고한 사이트

github.com/DeepBaksuVision/You_Only_Look_Once/issues/63

 

문제 상황

코드를 돌리려던 중 본 에러를 발견.

ModuleNotFoundError: No module named 'skimage'

 

해결을 위한 시도

다음 코드를 통해 skimage를 설치.

pip install scikit-image

본 코드를 통해 설치를 한 이후는 문제가 해결되었다.

 

참고한 사이트

stackoverflow.com/questions/38087558/import-error-no-module-named-skimage

문제 상황

kitti 데이터를 가져오는데 문제 발생

FileNotFoundError: [Errno 2] No such file or directory: 'D:\\monodepth2-master\\kitti_data\\2011_10_03/2011_10_03_drive_0034_sync\\image_02/data\\0000001441.jpg'

본 문제는 아마 파일의 경로가 리눅스에서 윈도우로 바뀌면서 생기는 문제점이라고 파악됨.

보면 경로상에 슬래쉬가 반대로 되어있는 부분이 있어서, 이 부분을 통일해주어야 한다고 생각했다.

 

해결을 위한 시도

해당 코드를 이런식으로 처리해주었다.

/ ☞ \\

 

 

아까의 슬래쉬 반대로 된 것 중에 한 군데는 고쳐졌지만, 다른 한쪽은 고쳐지지 않았다는 것을 파악하였다.

'D:\\monodepth2-master\\kitti_data\\2011_09_30/2011_09_30_drive_0033_sync\\image_02\\data\\0000000393.jpg'

이 부분은 os.path.join함수로 인해서 변경되지 않는 부분이라고 생각되어, replace문을 통해 문자열 중 /를 \\로 치환하도록 하였다.

 

FileNotFoundError: [Errno 2] No such file or directory: 'D:\\monodepth2-master\\kitti_data\\2011_09_30\\2011_09_30_drive_0034_sync\\image_02\\data\\0000000552.jpg'

 

앗 그런데 이렇게 바보같을 수가 원래 파일이 없었다.

그래서 이거를 이용해서 파일을 받아주었다.

wget -i splits/kitti_archives_to_download.txt -P kitti_data/

받고 난 다음에 추가 작성하겠다.

참고한 사이트

 

ponyozzang.tistory.com/334

 

문제 상황

train 코드를 돌리기 위해 구동하는 중에, 해당 에러 발생.

ModuleNotFoundError: No module named 'IPython'

 

해결을 위한 시도

먼저 해당 모듈의 버전을 확인하였다.

ipython --version

7.13.0 버전이라고 한다.

하지만 버전은 잘 출력되었다.

그래도 pip를 이용하여 한번 더 설치를 해보겠다.

conda install -c anaconda ipython

설치를 다시 하니 버전이 7.16.1로 업그레이드되었다.

그렇게 하니까 에러가 해결되었다!

 

참고한 사이트

stackoverflow.com/questions/45179915/importerror-no-module-named-ipython

문제 상황

레이아웃 관련해서 수정하다가 치명적인 문제를 발견하였다.

연구실 홈페이지를 수정하는 과정에서 발생했는데, 왜 발생했는지도 모르겠고,

이거 직전에 관리자 설정이 약간 버벅인걸 무시하면 안되었는데

그걸 무시하고 업데이트하고, 관리자 설정 몇 개를 건드리다보니 아예 홈페이지가 죽어버렸다.

 

홈페이지에 유달리 스팸 댓글이 많길래 확인해보니, 130000개나 스팸 댓글이 달려있었다.
그래서 그 댓글들을 일괄적으로 지우는 방법은 모르겠어서
일단 60000개의 댓글이 달려있던 공지 게시글을 지우고,
댓글을 관리자만 달 수 있게 하고, 스팸으로 의심되는 이메일 연동하지 않은 계정의 권한을 박탈했다.

그뒤로 설정 페이지가 버벅인걸 보면, 이거 때문인것같기도 하다.

 

심지어 admin을 건드려도 뭐가 되지 않고 있는 상황.

이걸 수정하기 위해서 어떤 조치를 취해야 하는지 확인해보았다.

 

따로 가리진 않겠습니다. 홈피 주소 모른척 해주세요.. 프라이버시..

Fatal error: Call to a member function getAction() on a non-object in C:\APM_Setup\htdocs\classes\db\DB.class.php on line 629

 

닷홈 호스팅(이것도 4년 전..)이 아닌 APMsetup을 이용한 웹은 안다뤄본지 5년정도 되었기 때문에, 진짜 기억이 전혀 나지 않았다.

최근에 한 코딩도 모두 C++ 아니면 자바 아니면 파이썬이었는데

진짜 미치겠다

내가 만든 게 아닌데 고장냈다는 사실이 나를 더 힘들게했다.

하지만 힘들어 할 시간에 복구를 해야한다는 생각이 더 많이 들었기 때문에 이렇게 해결과 함께 정리중이다.

 

해결을 위한 시도

 

 

1. 웹 url상으로 admin이 접근되는지부터 확인하였다.

홈피url/admin

음 그래도 똑같이 문제가 발생했다.

심지어 같은 getAction()함수에서 발생한 문제였다.

 

2. 해당 웹 페이지를 구동할 수 있게 하는 서버에 접속해야한다고 해서, 서버를 구동하고 있는 컴퓨터를 확인하였다.

 

3. 서버 컴퓨터에서 캐시파일 재생성이 필요하다는 의견이 있어서 캐시 파일 재생성을 시도하였다. (대부분의 문제는 이거로 해결하시면 될듯)

 

서버를 구동하고 있는 컴퓨터의 cache에 들어가보니, 오늘 업데이트한 내용들에 대해서 캐시가 저장되어 있는 것을 확인할 수 있었다.

저기서 queries 폴더를 날리면 거의 대부분의 문제는 해결되는데, 나의 경우는 저 cache안에 있는 폴더들을 모두 날린뒤에
다시 queries 폴더를 날려주니까 구동이 된 케이스다.

 

 

 

그래서 해당 내용들을 일단 지워주었다.

캐시기 때문에, 기존에 저장되어 있던 데이터들에는 크게 영향이 없을거라고 생각하고 지워주었다.

 

그래도 구동이 되지 않았다.

 

그래서 일단 서버 컴퓨터의 상황을 파악해보았다.

디스크 상황이 굉장히 살벌한 상황이었다.

 

 

이거 때문이었나보다.

 

일단 디스크 관리를 해주어야 할 것같아서, 기존 휴지통에 있던 애들을 모두 지워주기로 했다.

 

지웠는데도 용량이 3.5기가 정도밖에 남지 않았고, 여전히 상황은 개선되지 않았다.

 

4. apmsetup 의 서버를 껐다가 켜보기로 했다.

그래도 달라지는 부분이 없었다.

 

5. php 문제는 아닌 것 같은게 아까까지만 해도 잘 되던것이 안되는 문제였기 때문에, 디스크 또는 캐시 문제라고 판단해서 다시 기존 방법들을 되짚어보면서 재실행해보기로했다.

 

6. *(해결) 다시 아까의 cache폴더에 들어가니까

 

이렇게 쿼리가 또 생겨있길래

쿼리 폴더를 아예 날려버렸다.

 

 

이렇게 홈페이지 복구에 성공.

레이아웃에서 메뉴 출력되지 않던 문제도 해결완료.

 

이제 도메인 바꿔서 모든 게시물 수정해야하는데, 안 건드리고 싶다...

 

 

참고한 사이트

github.com/xpressengine/xe-core/issues/1926

xe1.xpressengine.com/qna/22630442

jwkim96.tistory.com/33

문제 상황

pandas를 pip로 설치한 이후에 다시 train 코드를 돌리려니 다음과 같은 에러가 발생했다.

raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

그래서 내 오랜만에 내 가상환경에 어떤 것들이 설치되어 있었는지를 재 점검해보았다.

conda list
............................................................

pytorch                   1.4.0           cpu_py36ha775e86_0
torchvision               0.5.0           pypi_0    pypi

............................................................

pytorch와 torchvision이 멀쩡히 잘 설치되어 있었다.

 

파이썬 버전도 확인해보았다.

python -V
Python 3.6.10 :: Anaconda, Inc.

보니까 파이썬도 3.6으로 잘 설치되어있다.

 

그리고 cuda 또한 잘 설치되어있다.

GPU가 없는 컴도 아닌데 이런 에러가 난다는 것에 매우 놀라면서(논문 써야해서, 우분투에서 윈도우로 갈아타서 쓰는 중인데,

새삼스럽게 윈도우는 이런 일도 있구나 싶다)

 

해결을 위한 시도

에러 해결을 위해 서치를 해보니, 이 문제는 아무래도 pytorch의 버전에서 생기는 에러였던 듯 하다.

그래서 서치한 사이트에서 발견한 나와 같은 버전을 가진 사람 - 윈도우 10, CUDA v10.0를 가진 사람의 코멘트를 따라 다음과 같은 명령어를 입력해주었다.

pip install torch===1.5.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html

이렇게 되면 기존의 torch버전과 torchvision의 버전이 0.1 씩 올라가게 되는 것이다.

 

 

 

참고한 사이트

github.com/pytorch/pytorch/issues/30664

문제 상황

pytorch에서 train코드를 돌리다가 다음 에러가 발생.

data.py", line 1, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

 

해결을 위한 시도

그래서 이렇게 코드를 입력해주었다.

pip install pandas

 

 

문제 상황

File "demo.py", line 367, in updateRGBD
AttributeError: module 'glm' has no attribute 'vec3'

PyQt5 모듈을 다운로드 받고,

다시 코드를 수행해보니 위와 같은 에러가 발생하였다.

PyGLM PySide2

를 설치하면서 생기는 문제로 보인다.

 

해당 코드의 경우 glm 이 필요없는 상황인데 glm이 같이 설치되어 발생되는 문제라고 여겨진다.

따라서, glm을 지워주도록 한다.

 

문제 해결

pip uninstall glm

해당 코드를 수행해주면 이렇게 좋은 demo가 나오는 것을 확인할 수 있었다.

 

에러 전문은 이런식으로 생겼다.

qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: direct2d, minimal, offscreen, webgl, windows.

 

에러 발생하게 된 상황

- 가상환경을 통해 파이썬 코드를 돌리던 중, 3차원 시각화하는 툴을 로딩하다가 본 에러가 났다.

- 해결 시도는 두 가지였고, 해결이 된 방법은 두 번째이니, 결론을 보고 싶은 사람은 아래부터 읽기를 바란다.

 

해결을 위한 시도 1번

에러를 구글링해보니, 환경변수로 QT 플러그인 경로를 넣어주어야 하는 듯하다.

python

import sys
print(sys.path)

위 코드와 같이 입력을 해주면 파이썬이 설치된 경로를 확인할 수 있다.

 

 

나의 경우에는 가상환경으로 설치했기때문에 conda안에 있는 가상환경 폴더에 파이썬이 설치되어있었다.

이런식으로 path가 주르륵 뜨는데, 나의 경우 처음에 나와있는 경로가 실제 파이썬이 설치되어 있는 경로에 해당하였다.

제어판에 있는 고급 시스템 설정에서 환경 변수를 찾아준다.

시스템 변수의 새로만들기를 눌러준다.

그리고 새 시스템 변수의 이름은

QT_QPA_PLATFORM_PLUGIN_PATH

으로 설정해준다.

 

변수 값의 경우, 기존 python이 설치된 경로에 이어서

\Lib\site-packages\PyQt5\Qt\plugins\platforms

 

를 붙여준다.

그래도 에러가 해결되지 않았다.

변수를 바꿔줬는데도 해결되지 않아서, 경로를 자세히 살펴봤는데, 해당하는 경로가 애초에 폴더상에 존재하지 않는것을 발견하였다.

(이거부터 확인했으면 삽질을 덜했을 것 같은데ㅋㅋ 아쉽다)

 

해결을 위한 시도 2번(해결완료)

변수를 확인하는 중간에 QT 자체가 깔리지 않았다는 것을 알게 되어

먼저 저자가 요구조건으로 넣은 PyGLM PySide2 pyopengl 를 재설치했다.

 

pip uninstall PyGLM PySide2 pyopengl
pip install PyGLM PySide2 pyopengl

이 다음에 pyqt5관련 모듈들을 깔아주었다.

pip install pyqt5
pip install pyqt5-tools

그 다음에 컴퓨터를 재부팅하였다

원래 시스템변수같은거는 부팅하고 나야 재설정되는 경우가 많아서, 그렇게 했다.

그랬더니 에러가 사라졌다.

 

 

 

참고한 사이트

해결 방법 1 관련 참고 doongkibangki.tistory.com/24

 

해결 방법 2 관련 참고 blog.naver.com/PostView.nhn?blogId=blueqnpfr1&logNo=221582202946&from=search&redirect=Log&widgetTypeCall=true&directAccess=false