Хорошо, сначала запустите ipython shell
с терминала и import
TensorFlow
$ ipython --pylab
Python 3.6.5 |Anaconda custom (64-bit)| (default, Apr 29 2018, 16:14:56)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
Using matplotlib backend: Qt5Agg
In [1]: import tensorflow as tf
Теперь мы можем смотреть использование памяти GPU с помощью команды:
# realtime update for every 2s
$ watch -n 2 nvidia-smi
Поскольку мы только import
выпустили TensorFlow, но еще не использовали какой-либо графический процессор, статистика использования будет:
Обратите внимание, что использование памяти GPU очень мало (~ 200 МБ).
Теперь давайте загрузим графический процессор в наш код. Как указано в tf documentation
, do:
In [2]: sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Теперь статистика watch должна показывать обновленную память использования GPU, как показано ниже:
Обратите внимание, что наш Python-процесс из оболочки ipython использует 7,7 ГБ памяти GPU.
PS Вы можете продолжить смотреть эти статистические данные по мере запуска кода, чтобы узнать, насколько интенсивным является использование GPU.
«предшествующий токен» означает только это, предыдущий токен.
Эффект, который имеет *
или +
, является остальной частью предложения:
*
означает, что предыдущий токен, независимо от того, что может быть, может быть сопоставлен ноль или более раз +
означает, что предыдущий токен, независимо от того, что может быть, может быть сопоставлен один или несколько раз Здесь «токен» - это одна единица шаблона, это может быть любой из следующих примеров + много:
A+
соответствует одному или нескольким A
s, а A*
соответствует нулю или более A
s, например AAAAA
\d+
соответствует цифре, один или несколько раз, например 123450
[a-f]+
соответствует любой букве от a
до f
, один или несколько раз, например afdbe
(test)+
совпадает с текстом test
один или несколько раз, например testtesttest
«ноль или ...» означает, что шаблон также может не совпадать, вот пример шаблона: 123450*6
, это будет соответствовать следующим примерам:
1234506
& lt; - здесь 0
происходит один раз (что больше нуля) 123450006
& lt; - здесь оно происходит три раза (также больше нуля) 123456
& lt; - здесь он имеет нулевое время, что является законным, если вы используете *
, но не если шаблон был 123450+6
.