• Как правильно транспонировать матрицы в numpy?

    @dmshar
    Насколько я понимаю, операция транспонирования в numpy не позволяет преобразовать вектор-строку в вектор-столбец. --- ????? Это откуда вы взяли?
    a=np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
    print(a)
    b=a.reshape(-1,1)
    print(b)


    Результат работы:
    [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]
    [[ 1]
     [ 2]
     [ 3]
     [ 4]
     [ 5]
     [ 6]
     [ 7]
     [ 8]
     [ 9]
     [10]
     [11]
     [12]
     [13]
     [14]
     [15]]
    Ответ написан
    1 комментарий
  • Как выбрать железо для обучения нейронной сети?

    @rPman
    Размер и архитектура сети плюс размер обучающей выборки.

    Не всегда количество ядер GPU оказываются решающими, большее влияние имеет размер и скорость GPU RAM.

    Первая метрика, точнее граница, ниже которой скорость обучения максимальная - объем весов сети плюс обучающая выборка должны вмещаться в оперативную память GPU.

    Несколько GPU позволяют почти линейно снизить требования к размеру обучающей выборки - так как можно поделить выборку на части и вычислять на каждом шаге ошибку параллельно (кстати так сделать можно не всегда).

    Следующая граница - обучающая выборка не влезает в GPU но вмещается в RAM, сама же нейронная сеть влезает в GPU, т.е. вычисление самой сети все еще быстрое а значит единственное ограничение - узкое горлышко между RAM и GPU.

    Следующая граница - обучающая выборка не влезает в RAM в принципе (например сотни гигабайт видео), в этом случае узким горлышком может стать скорость чтения из хранилища (но на практике подгоняют так чтобы процессор и gpu стали узким горлышком, часто можно найти как распараллелить).

    Ну и дальше, вариант когда сеть не влезает в GPU лучше не рассматривать, так как тогда скорее всего задача будет решаться только огромными деньгами.

    И да, задача может не решаться одной сетью, это может быть несколько сетей разных классов и назначения, и их нельзя параллелить (обучение последовательное).

    Так же огромное значение имеет подготовка данных, она может отнимать заметное количество ресурсов (и пока их не подготовишь, нельзя начинать следующий этап обучения сети) и главное так как идет исследование задачи, подготовка данных может быть далеко не однократной, до тех пор пока задача будет решена. Например ты подготовил данные, это заняло на твоей машине пару суток (и GPU даже не задействовано), но потом неделя насилования видеокарт не смогло построить сеть, т.е. она тупо не сходилась или наоборот, переобучалась, заучивая обучающую выборку но проваливая тестовую... приходится переделывать всю выборку, меняя алгоритм и способ подготовки данных, снова подготавливаешь данные сутками и по новой. Еще могут быть эксперименты с правкой самой сети (например прореживание весов), тоже отнимает время...

    в общем это процесс творческий и каких то гарантий без собственно исследования дать нельзя.
    Ответ написан
    Комментировать
  • Как выбрать железо для обучения нейронной сети?

    @12rbah
    Зависит от того на каком уровне вы хотите заниматься.
    Вот хорошая статья, если лень читать в конце есть TL;DR
    На проце можно обучать, но хз до какого уровня, если денег нет, то хотя бы 1050ti можно присмотреть(для начала точно хватит), с Google Colab можно работать, но там как повезет.
    Заинтересовало сделать свой проект по машинному обучению по теме human pose estimation.
    Это можно через opencv сделать, вашего железа хватит скорее всего.
    Ответ написан
    Комментировать
  • Как выбрать железо для обучения нейронной сети?

    Вашего компьютера достаточно для выхода в интернет и работы в Google Colab: обучения моделей на их ресурсах, в т.ч. с GPU.

    Для оценки требований к ресурсам можно посмотреть на общее число весов в модели. Чем больше в видеокарте CUDA-ядер и памяти, тем лучше. Но и без NVidia GPU, на слабом CPU можно тренировать и гонять модель. Просто медленнее. Много медленнее.
    Ответ написан
    Комментировать
  • Как выбрать железо для обучения нейронной сети?

    Jump
    @Jump
    Системный администратор со стажем.
    Делайте на том что есть - указанной конфигурации прекрасно хватит для обучения.
    Если же будет конкретный реальный проект работающий с большими данными для которого мощностей не хватит - то уже под него и будете подбирать необходимый сервер.

    Другое дело что работать за компьютером с процессором 1.6 ГГц банально некомфортно - но это уже другой вопрос. Как подобрать железо для комфортной работы....

    Тут принцип простой - какое есть железо, на таком и работайте.
    Как только поймете что работать невозможно или крайне сложно - сразу придет понимание какое именно железо нужно.
    Ответ написан
    Комментировать
  • Как выбрать железо для обучения нейронной сети?

    @MEDIOFF
    Python Developer
    Вы только учитесь, не парьтесь насчет железа, с нуля вы не будете обучать модели, так что делайте на том что есть, есть площадки типу google colab.

    P.S: для машинного обучения смотрите на видеокарту и количество CUDA ядер
    Ответ написан
    Комментировать