Получение Java распараллеливает идентификатор и отслеживание стека безудержного потока Java

Что ж, без заполнения выходной сигнал стал бы меньше входного. Эффект сравним с эффектом уменьшения нормальной свертки.

Представьте, что у вас есть 1d-тензор с 1000 элементами и расширенное ядро ​​свертки 1x3 с коэффициентом расширения 3. Это соответствует «общей длине ядра», равной 1 + 2free + 1 + 2free + 1 = 7. Учитывая ход из 1 выход будет 1d-тензор с 1000 + 1-7 = 994 элементов. В случае нормальной свертки с ядром 1x3 и коэффициентом шага 1 выход будет иметь 1000 + 1-3 = 998 элементов. Как видите, эффект можно рассчитать аналогично обычной свертке:)

В обеих ситуациях выходной сигнал станет меньше без заполнения. Но, как вы можете видеть, коэффициент расширения не влияет на масштабирование выходного размера, как в случае с коэффициентом шага.

Как вы думаете, почему в рамках Deeplab не выполняется заполнение? Я думаю, что в официальной реализации тензорного потока используется заполнение.

Лучший Франк

17
задан Stu Thompson 21 October 2008 в 14:49
поделиться

4 ответа

Похоже, что nid в выводе jstack - это идентификатор LWP Linux.

"http-342.877.573.944-8080-360" daemon prio=10 tid=0x0000002adaba9c00 nid=0x754c in Object.wait() [0x00000000595bc000..0x00000000595bccb0]

Преобразуйте nid в десятичное, и вы получите идентификатор LWP. В вашем случае 0x754c - это 30028. Этот процесс не показан в нашем выводе ps, но, вероятно, это был один из LWP, который вы пропустили для экономии места.

Вот небольшой фрагмент Perl, который вы можете использовать для конвейерного вывода вывода jstack to:

#!/usr/bin/perl -w
while (<>) {
    if (/nid=(0x[[:xdigit:]]+)/) {
        $lwp = hex($1);
        s/nid=/lwp=$lwp nid=/;
    }
    print;
}
13
ответ дан 30 November 2019 в 13:40
поделиться

Из памяти, если Вы CTRL-BREAK на консоли Вы получите дамп текущих потоков и несколько их кадров отслеживания стека.

Из памяти (я не уверен, является ли это функцией IntelliJ IDEa, или это - значение по умолчанию в Java), но это скажет Вам, какой поток заведен в тупик, и которые возражают, что они ожидают на. Необходимо быть в состоянии перенаправить вывод в файл, и просто grep для ЗАВЕДЕННОГО В ТУПИК текста.

JConsole, VisualVM или другие профилировщики, такие как JProfiler также покажут Вам потоки и их стеки, однако если Вы не захотите использовать какой-либо внешний инструмент, я думаю, что CTRL-BREAK даст Вам, что Вы ищете.

0
ответ дан 30 November 2019 в 13:40
поделиться

Можно использовать JConsole для просмотра отслеживания стека потока.

, Если Ваше использование JDK 1.6.0_07 или выше, можно также использовать visualvm.

Оба инструмента обеспечивают хороший вид на все рабочие потоки в приложении. visualvm вполне немного более хорош, но надо надеяться видящий, что все потоки могут помочь Вам разыскать безудержный поток.

Проверка на потоки, которые являются всегда в состоянии ВЫПОЛНЕНИЯ. Когда у нас был безудержный поток, отслеживание стека будет постоянно изменяться. Таким образом, мы смогли сказать, какие методы цикл называл, и разыщите цикл.

7
ответ дан 30 November 2019 в 13:40
поделиться

В SUN

Обратите внимание, что prstat по умолчанию показывает отсутствие легких процессов, а не LWPID.

Чтобы просмотреть информацию для всех легковесные процессы для конкретного пользователя используют параметр -L .

prstat -L -v -u weblogic

теперь используют LWPID, преобразовывают его в шестнадцатеричный и сопоставляют с nid из дампа потока

0
ответ дан 30 November 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: