Próbuję wdrożyć algorytmy dla danych 1000-wymiarowych z 200k + datapoints w python. Chcę używać numpy, scipy, sklearn, networkx i innych przydatnych bibliotek. Chcę wykonywać operacje, takie jak odległość między wszystkimi punktami i grupowanie we wszystkich punktach. Zaimplementowałem działające algorytmy, które wykonują to, co chcę, z rozsądną złożonością, ale kiedy próbuję skalować je do wszystkich moich danych, zabraknie pamięci RAM. Oczywiście, że robię, tworzenie macierzy dla parowych odległości na 200k + danych zajmuje dużo pamięci.Praca z dużymi danymi w python i numpy, za mało pamięci RAM, jak zapisać częściowe wyniki na dysku?
Tutaj nadchodzi haczyk: Naprawdę chciałbym to zrobić na cholernych komputerach z małą ilością pamięci RAM.
Czy jest możliwy sposób, aby to zadziałało bez ograniczeń niskiego taranu. To zajmie znacznie więcej czasu, tak naprawdę nie jest to problemem, o ile czasy nie idą w nieskończoność!
Chciałbym móc ustawić moje algorytmy, a następnie wrócić godzinę lub pięć później i nie utknąć, ponieważ zabrakło pamięci RAM! Chciałbym zaimplementować to w pythonie i móc korzystać z bibliotek numpy, scipy, sklearn i networkx. Chciałbym móc obliczyć odległość między parami do wszystkich moich punktów.
Czy to możliwe? I jak mam się tym zająć, co mogę zacząć czytać dalej?
poważaniem // Mesmer
Twoje pytanie jest dość ogólne i bardzo ogólne. Są to dość normalne rozmiary danych dla wielu zastosowań w przetwarzaniu sygnałów i uczeniu maszynowym. Proponuję dowiedzieć się o algorytmach i technikach stosowanych w tych dziedzinach. –
Chcę być w stanie wykonać, na przykład, parami odległość między wszystkimi punktami w macierzy 200.000 x 1000 w Pythonie bez wystarczającej pamięci RAM, aby zachować całą matrycę odległości w pamięci. Szukam informacji na temat tego, jak to zrobić :) więc bardziej konkretne odpowiedzi byłyby niejasne "spójrz na dwa całe podkategorie informatyki" byłoby pomocne! – Ekgren
Prawdopodobnie chcesz rzucić okiem na numpy [memmap] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html) i prawdopodobnie [PyTables] (http: // www. pytables.org) jako punkt wyjścia. –