tf.contrib.training.HParams
Класс для хранения набора гиперпараметров в виде пар имя-значение.
tf.contrib.training.HParams(
hparam_def=None, model_structure=None, **kwargs
)
Объект HParams содержит гиперпараметры, используемые для построения и обучения модели, такие как количество скрытых узлов в слое нейронной сети или скорость обучения.
Сначала вы создаёте объект HParams, указав имена и значения гиперпараметров.
Для удобного доступа имена параметров добавляются в качестве прямых атрибутов класса. Типичное использование приведено ниже:
# Create a HParams object specifying names and values of the model # hyperparameters: hparams = HParams(learning_rate=0.1, num_hidden_units=100) # The hyperparameter are available as attributes of the HParams object: hparams.learning_rate ==> 0.1 hparams.num_hidden_units ==> 100
Гиперпараметры имеют тип, который определяется из типа значения, переданного при создании. В настоящее время поддерживаются типы: целое число, число с плавающей запятой, булево значение, строка, а также списки целых чисел, чисел с плавающей запятой, булевых значений или строк.
Вы можете переопределить значения гиперпараметров, вызвав метод parse(), передав строку с запятыми, разделяющими пары name=value. Это предназначено для того, чтобы можно было переопределить любые значения гиперпараметров из одной командной строки, в которой пользователю передаются пары «гиперпараметр=значение». Это позволяет избежать необходимости определения одного флага для каждого гиперпараметра.
Синтаксис, ожидаемый для каждого значения, зависит от типа параметра. Смотрите parse() для описания синтаксиса.
Пример:
# Define a command line flag to pass name=value pairs.
# For example using argparse:
import argparse
parser = argparse.ArgumentParser(description='Train my model.')
parser.add_argument('--hparams', type=str,
help='Comma separated list of "name=value" pairs.')
args = parser.parse_args()
...
def my_program():
# Create a HParams object specifying the names and values of the
# model hyperparameters:
hparams = tf.contrib.training.HParams(
learning_rate=0.1,
num_hidden_units=100,
activations=['relu', 'tanh'])
# Override hyperparameters values by parsing the command line
hparams.parse(args.hparams)
# If the user passed `--hparams=learning_rate=0.3` on the command line
# then 'hparams' has the following attributes:
hparams.learning_rate ==> 0.3
hparams.num_hidden_units ==> 100
hparams.activations ==> ['relu', 'tanh']
# If the hyperparameters are in json format use parse_json:
hparams.parse_json('{"learning_rate": 0.3, "activations": "relu"}')
| Аргументы | |
|---|---|
hparam_def | Сериализованные гиперпараметры, закодированные как протокол буфера hparam_pb2.HParamDef. Если предоставлен, этот объект инициализируется посредством десериализации hparam_def. В противном случае используется **kwargs. |
model_structure | Экземпляр ModelStructure, определяющий перекрестные характеристики признаков, которые будут использоваться в Trial. |
**kwargs | Пара имя-значение, где ключ — имя гиперпараметра, а значение — значение параметра. |
| Исключения | |
|---|---|
ValueError | Если оба hparam_def и значения инициализации предоставлены, или если один из аргументов некорректен. |
Методы
add_hparam
add_hparam(
name, value
)
Добавляет пару {имя, значение} к гиперпараметрам.
| Аргументы | |
|---|---|
name | Имя гиперпараметра. |
value | Значение гиперпараметра. Может быть одного из следующих типов: int, float, string, список int, список float или список string. |
| Исключения | |
|---|---|
ValueError | если один из аргументов некорректен. |
del_hparam
del_hparam(
name
)
Удаляет гиперпараметр с ключом 'имя'.
Ничего не делает, если он отсутствует.
| Аргументы | |
|---|---|
name | Имя гиперпараметра. |
from_proto
@staticmethod
from_proto(
hparam_def, import_scope=None
)
get
get(
key, default=None
)
Возвращает значение key, если оно существует, иначе default.
get_model_structure
get_model_structure()
override_from_dict
override_from_dict(
values_dict
)
Переопределяет существующие значения гиперпараметров, парсингу новые значения из словаря.
| Аргументы | |
|---|---|
values_dict | Словарь пар имя:значение. |
| Возвращаемое значение | |
|---|---|
Экземпляр HParams. |
| Исключения | |
|---|---|
KeyError | Если гиперпараметр в values_dict не существует. |
ValueError | Если values_dict не может быть распарсен. |
parse
parse(
values
)
Переопределяет существующие значения гиперпараметров, парсингу новые значения из строки.
См. parse_values для получения более подробной информации о допустимом формате значений.
| Аргументы | |
|---|---|
values | Строка. Список пар «имя=значение», разделенных запятыми, где «значение» должно соответствовать синтаксису, описанному выше. |
| Возвращаемое значение | |
|---|---|
Экземпляр HParams. |
| Исключения | |
|---|---|
ValueError | Если values не может быть распарсен или гиперпараметр в values не существует. |
parse_json
parse_json(
values_json
)
Переопределяет существующие значения гиперпараметров, парсингу новые значения из JSON объекта.
| Аргументы | |
|---|---|
values_json | Строка, содержащая JSON объект пар имя:значение. |
| Возвращаемое значение | |
|---|---|
Экземпляр HParams. |
| Исключения | |
|---|---|
KeyError | Если гиперпараметр в values_json не существует. |
ValueError | Если values_json не может быть распарсен. |
set_from_map
set_from_map(
values_map
)
УСТАРЕВШАЯ функция. Используйте override_from_dict. (устарело)
set_hparam
set_hparam(
name, value
)
Устанавливает значение существующего гиперпараметра.
Эта функция проверяет, что тип значения соответствует типу существующего гиперпараметра.
| Аргументы | |
|---|---|
name | Имя гиперпараметра. |
value | Новое значение гиперпараметра. |
| Исключения | |
|---|---|
KeyError | Если гиперпараметр не существует. |
ValueError | Если есть несоответствие типов. |
set_model_structure
set_model_structure(
model_structure
)
to_json
to_json(
indent=None, separators=None, sort_keys=False
)
Сериализует гиперпараметры в JSON.
| Аргументы | |
|---|---|
indent | Если целое число больше или равно 0, элементы массива JSON и члены объектов будут красиво отформатированы с указанным уровнем отступа. Уровень отступа 0 или меньше вставит только новые строки. None (по умолчанию) выбирает наиболее компактное представление. |
separators | Необязательная кортеж (item_separator, key_separator). Значение по умолчанию — (', ', ': '). |
sort_keys | Если True, выходные словари будут отсортированы по ключу. |
| Возвращаемое значение | |
|---|---|
| Строка JSON. |
to_proto
to_proto(
export_scope=None
)
Преобразует объект HParams в протокол HParamDef.
| Аргументы | |
|---|---|
export_scope | Необязательный string. Имя области именования для удаления. |
| Возвращаемое значение | |
|---|---|
Протокол HParamDef. |
values
values()
Возвращает значения гиперпараметров в виде словаря Python.
| Возвращаемое значение | |
|---|---|
| Словарь, где ключами являются имена гиперпараметров, а значениями — их значения. |
__contains__
__contains__(
key
)
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/training/HParams