Wpis z mikrobloga

Postanowiłem zrobić porównanie szybkości uczenia sieci na różnych urządzeniach i przy użyciu dwóch popularnych frameworków - Pytorch i Tensorflow. Na moim dość starym laptopie mam jedynie GPU AMD i postanowiłem też sprawdzić czy mogę to jakoś wykorzystać. Okazało się, że da się to zrobić jedynie poprzez Tensorflow przy użyciu PlaidML, ale jest to problematyczne i da się wykorzystać jedynie pojedynczy wątek karty podczas gdy przy użyciu CPU domyślnie używane są wszystkie 8. Zrobiłem 2 sieci - jedna trochę więcej warstw konwolucyjnych, druga więcej dużych warstw FC. Wyniki znormalizowałem do najmniejszej wartości.

[torch/tf] | cpu | gpu
local | 47/28 | x /18
colab | 42/52 | 1.1/1.0

[torch/tf] | cpu | gpu
local | 50/25 | x /16
colab | 35/39 | 2.5/1.0

Z jakiegoś powodu na CPU lokalnie tf działa znacznie szybciej niż torch oraz CPU na colabie, na colabie delikatna przewaga jest na korzyść torcha. Najlepsze wyniki osiąga tf na GPU, torch wydaje się znacznie odstawać. Stare GPU AMD potrafi trochę pomóc ale ograniczenie jedynie do połowy zasobów jest smutne. Wadą treningu na AMD jest jednak wymuszenie stosowania starszej wersji Kerasa i potrzeba stworzenia oddzielnego środowiska do normalnego użytkowania tf na CPU.

#programowanie #python #datascience #machinelearning
  • 2
@Oo-oO: Nie bawiłem się jeszcze nigdy w dźwięki. Chciałem zrobić coś takiego w wolnym czasie ale raczej text-to-speech. I wtedy pewnie wziąłbym jakąś dużą bazę i przeprowadził tylko fine tuning na własnych danych.