NCTCMumbai's picture
Upload 2583 files
97b6013 verified
raw
history blame
No virus
2.87 kB
# Copyright 2018 The TensorFlow Authors All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
"""Defines hyperparameter configuration for ConvolutionalNet models.
Specifically, provides methods for defining and initializing TensorFlow
hyperparameters objects for a convolutional model as defined in:
seq2species.build_model
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import tensorflow as tf
def parse_hparams(hparam_values='', num_filters=1):
"""Initializes TensorFlow hyperparameters object with default values.
In addition, default hyperparameter values are overwritten with the specified
ones, where necessary.
Args:
hparam_values: comma-separated string of name=value pairs for setting
particular hyperparameters.
num_filters: int; number of filters in the model.
Must be fixed outside of hyperparameter/study object as Vizier does not
support having inter-hyperparameter dependencies.
Returns:
tf.contrib.training.Hparams object containing the model's hyperparameters.
"""
hparams = tf.contrib.training.HParams()
# Specify model architecture option.
hparams.add_hparam('use_depthwise_separable', True)
# Specify number of model parameters.
hparams.add_hparam('filter_widths', [3] * num_filters)
hparams.add_hparam('filter_depths', [1] * num_filters)
hparams.add_hparam('pointwise_depths', [64] * num_filters)
hparams.add_hparam('num_fc_layers', 2)
hparams.add_hparam('num_fc_units', 455)
hparams.add_hparam('min_read_length', 100)
hparams.add_hparam('pooling_type', 'avg')
# Specify activation options.
hparams.add_hparam('lrelu_slope', 0.0) # Negative slope for leaky relu.
# Specify training options.
hparams.add_hparam('keep_prob', 1.0)
hparams.add_hparam('weight_scale', 1.0)
hparams.add_hparam('grad_clip_norm', 20.0)
hparams.add_hparam('lr_init', 0.001)
hparams.add_hparam('lr_decay', 0.1)
hparams.add_hparam('optimizer', 'adam')
# optimizer_hp is decay rate for 1st moment estimates for ADAM, and
# momentum for SGD.
hparams.add_hparam('optimizer_hp', 0.9)
hparams.add_hparam('train_steps', 400000)
# Overwrite defaults with specified values.
hparams.parse(hparam_values)
return hparams