깊은 학습 모델의 경우 데이터를 일괄 적으로로드해야합니다. 모든 에포크 (모든 데이터에 대한 전체 반복)마다 모든 행을 한 번 전달해야하지만 데이터가 임의의 순서로 알고리즘에 전달되는 것이 중요합니다. 내 데이터 세트가 너무 커서 메모리에서 완전히 읽을 수 없습니다. 길이가 가변적 인 시퀀스 데이터 일 때 입력 형식은 다른 스크립트가 출력하는 클러스터의 덤프이기 때문에 변경할 수 있습니다. 현재 그것은 행당 몇 가지 메타 정보이고 시퀀스는 ';'로 나뉩니다.텍스트 파일에서 임의의 청크 읽기
내 현재 솔루션은 모든 줄 번호를 임의로 섞어서 4 개씩 덩어리로 만들고 파일을 읽어 청크 줄 번호와 일치하는 줄을 파싱하는 생성기입니다. 아무것도 남지 않을 때까지 일괄 처리 된 크기의 시퀀스를 생성 한 다음 다음 줄 번호의 덩어리를 구문 분석합니다. 그것은 작동하지만 더 나은 해결책이있는 것처럼 느껴집니다. 누가 더 나은 워크 플로우를 가지고 있습니까? 이것은 내가 정기적으로 실행하는 문제입니다. 문제는 매 청크마다 모든 파일을 완전히 스캔한다는 것입니다. 비록 내가 단지 4 개의 덩어리로 작업 할 수는 있지만, 30 개의 에포크는 120 개의 큰 파일을 읽는 것입니다.
* "는 데이터를 랜덤으로 공급하는 것이 중요 알고리즘 주문 "* 시퀀셜 디스크 I/O API는 이러한 종류의 미친 짓을 위해 설계되지 않았습니다. - "깊은 학습"에 대해 아무것도 모르는 사람이 서명 했음 –
'set (file_obj) '를 사용하여 파일 세트를 만들 것입니다. 그런 다음 random.sample을 사용하여 적절한 수의 무작위 요소를 가져옵니다. – zondo
@ zondo는 전체 파일 내용을 메모리에로드하지 않습니까? –