Below is a simple piece of code to try YellowFin on my dataset.
x = tf.placeholder( tf.float32, [ None, train_x.shape[ 1 ] ] )
y = tf.placeholder( tf.float32, [ None, train_y.shape[ 1 ] ] )
m = tf.layers.dense( x, hidden_dim )
m = tf.layers.batch_normalization( m )
m = tf.nn.elu( m )
m = tf.layers.dense( m, hidden_dim )
m = tf.layers.batch_normalization( m )
m = tf.nn.elu( m )
m = tf.layers.dense( m, hidden_dim )
m = tf.layers.batch_normalization( m )
m = tf.nn.elu( m )
m = tf.layers.dense( m, train_y.shape[ 1 ] )
prediction = tf.nn.softmax( m )
loss = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits( labels=y, logits=m ) )
optimizer = yellowfin.YFOptimizer().minimize( loss )
s = tf.Session()
s.run( tf.global_variables_initializer() )
for epoch in range( epochs ):
_, h = s.run( [ optimizer, loss ], feed_dict={ x: train_x, y: train_y } )
Usually, it crashes and throws the following exception.
Caused by op 'update_hyper/cond/PyFuncStateless', defined at:
File "test2.py", line 47, in <module>
optimizer = yf.YFOptimizer( learning_rate=1., momentum=0. ).minimize( loss )
File "/data/python-mp-test/libs/yellowfin.py", line 268, in minimize
return self.apply_gradients(grads_and_vars)
File "/data/python-mp-test/libs/yellowfin.py", line 223, in apply_gradients
update_hyper_op = self.update_hyper_param()
File "/data/python-mp-test/libs/yellowfin.py", line 191, in update_hyper_param
lambda: self._mu_var) )
File "/usr/lib/python3.5/site-packages/tensorflow/python/util/deprecation.py", line 289, in new_func
return func(*args, **kwargs)
File "/usr/lib/python3.5/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1814, in cond
orig_res_t, res_t = context_t.BuildCondBranch(true_fn)
File "/usr/lib/python3.5/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1689, in BuildCondBranch
original_result = fn()
File "/data/python-mp-test/libs/yellowfin.py", line 190, in <lambda>
self._mu = tf.identity(tf.cond(self._do_tune, lambda: self.get_mu_tensor(),
File "/data/python-mp-test/libs/yellowfin.py", line 173, in get_mu_tensor
roots = tf.py_func(np.roots, [coef], Tout=tf.complex64, stateful=False)
File "/usr/lib/python3.5/site-packages/tensorflow/python/ops/script_ops.py", line 201, in py_func
input=inp, token=token, Tout=Tout, name=name)
File "/usr/lib/python3.5/site-packages/tensorflow/python/ops/gen_script_ops.py", line 56, in _py_func_stateless
Tout=Tout, name=name)
File "/usr/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op
op_def=op_def)
File "/usr/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2506, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/usr/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1269, in __init__
self._traceback = _extract_stack()
UnknownError (see above for traceback): LinAlgError: Array must not contain infs or NaNs
[[Node: update_hyper/cond/PyFuncStateless = PyFuncStateless[Tin=[DT_FLOAT], Tout=[DT_COMPLEX64], token="pyfunc_0", _device="/job:localhost/replica:0/task:0/cpu:0"](update_hyper/cond/ScatterUpdate)]]
Below is a simple piece of code to try YellowFin on my dataset.
Usually, it crashes and throws the following exception.