Неопределенная ссылка на pthread_create в Linux

Предположительно, ваша сеть настроена на инициализацию весов случайными значениями. Когда вы запускаете sess.run (tf.initialize_all_variables ()), вы инициализируете переменные для новых случайных значений. Поэтому вы получаете разные значения для output_v при каждом запуске и, следовательно, разные градиенты. Если вы хотите использовать модель, которую вы обучали ранее, вам следует заменить инициализацию на initialize_all_variables () командой восстановления. Я не знаком с тем, как это делается в Керасе, так как я обычно работаю напрямую с тензорным потоком, но я бы попробовал это .

Также обратите внимание, что initialize_all_variables устарела , и вы должны использовать вместо него global_variables_initializer.

348
задан codeforester 8 March 2017 в 20:30
поделиться

2 ответа

Я полагаю, что надлежащий способ добавить pthread в CMake со следующим

find_package (Threads REQUIRED)

target_link_libraries(helloworld
    ${CMAKE_THREAD_LIBS_INIT}
)
1
ответ дан 23 November 2019 в 00:28
поделиться

Оба ответа на этот вопрос пока неверны .
Для Linux правильная команда:

gcc -pthread -o term term.c

В общем, библиотеки должны следовать источникам и объектам в командной строке, а -lpthread не является «опцией», это спецификация библиотеки. В системе с установленным только libpthread.a ,

gcc -lpthread ...

не сможет установить связь.

641
ответ дан 23 November 2019 в 00:28
поделиться
Другие вопросы по тегам:

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