пределы памяти для выполнения программы на Python с использованием tenorflow, numpy, python, torch - PullRequest
0 голосов
/ 09 февраля 2019

Я хотел бы определить теоретические и практические пределы выделения памяти для выполнения программы на Python, например, как можно создать большой массив с одним запуском, то же самое для тензорного потока, Torch и чистого Python.

Iнаписал небольшие тесты для всех библиотек:

    import sys
    n=int(sys.argv[1])
    if sys.argv[2]=='numpy':
        import numpy as np
        a=np.random.rand(n*n)
    if sys.argv[2]=='python':
        a=[0.0005 for _ in range(n*n)]
    if sys.argv[2]=='tensorflow':
        import tensorflow as tf
        a=tf.Variable(tf.random_uniform([n*n],0,1,dtype=tf.float64,seed=0)
        init=tf.global_variables_initializer()
        sess=tf.InteractiveSession()
        sess.run(init)
    if sys.argv[2]=='torch':
        import torch
        torch.set_default_dtype(torch.float64)
        torch.Tensor(n*n)

и запустил этот скрипт в командной строке следующим образом: python3 file.py 30000 numpy

Вот ограничения, которых я достиг на двух компьютерах(оба являются сервером Ubuntu 18):

    1st computer has cpus - 1, ram- 8gb
    2nd computer has cpus - 4, ram - 16gb

    numpy:      39000 - 45000 cells
    python:     39000 - 42000 cells
    torch:      39000 - 45000 cells
    tensorflow: 27000 - 31000 cells

1) Разница между двумя экспериментами не удваивается, не могли бы вы помочь мне понять, почему?2) Как узнать теоретические ограничения для библиотек?(Я имею в виду использование только ОЗУ) 3) Тестирование Tensorflow на ЦП показывает те же результаты, что и NumPy, я не прав в коде?Потому что я думал, что он должен хранить большее количество ячеек, чем массив numpy

...