matplotlib에서 그래프를 표시하지 않고 이미지로 저장

1. 배경



제2회 Neural Network Console Challenge에 참가해, 시행착오한 내용을 비망록으로서 픽업합니다. 여러 번 나누어 게시 예정 (어디까지 예정). 초보자의 프로그래밍이므로, 귀찮은 일을 하고 있을 가능성이 크지만, 따뜻한 눈으로 지켜봐 주세요 . 챌린지 내용 자세한 내용은 과거 게시물을 참조하십시오.

2. 코드



딥 러닝의 학습 데이터로서, 음성 데이터를 멜 주파수 스펙트로그램의 화상에 특징량화할 필요가 있고, librosa 를 사용해 변환했습니다. librosa에는 결과를 표시하는 함수가 준비되어 있어 "librosa.display.specshow"를 사용 matplotlib로 시각화하는 것이 일반적이라고 생각합니다. 이 때, 일일이 그래프가 표시되어 버려, 곧바로 메모리 부족 상태가 됩니다. plt.close() 를 사용하면 이것을 쉽게 피할 수 있습니다. 코드는 얼른 아래.
plt.figure(figsize=(2, 1), dpi=100)
librosa.display.specshow(log_S, sr=sr) #librosaの結果表示
plt.subplots_adjust(left=0, right=1, bottom=0, top=1) #余白を調整
plt.savefig("fig.png")
plt.close() #←これ!

이것을 for문으로 반복해서 저장하면 OK. Neural Network Console Challenge에서는 10,000점을 넘는 음성 데이터를 그래프(이미지) 데이터로 변환하여 저장했지만 문제 없었습니다.

좋은 웹페이지 즐겨찾기