In [1]:
from sklearn import datasets
from sklearn import metrics
from sklearn.model_selection import train_test_split
import tensorflow as tf
In [2]:
def optimizer_exp_decay():
global_step = tf.contrib.framework.get_or_create_global_step()
learning_rate = tf.train.exponential_decay(
learning_rate = 0.1, global_step=global_step,
decay_steps=100, decay_rate=0.001)
return tf.train.AdagradOptimizer(learning_rate=learning_rate)
In [3]:
iris = datasets.load_iris()
x_train, x_test, y_train, y_test = train_test_split(
iris.data, iris.target, test_size=0.2, random_state=42)
feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(x_train)
classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,
hidden_units=[10, 20, 10],
n_classes=3,
optimizer=optimizer_exp_decay)
classifier.fit(x_train, y_train, steps=800)
predictions = list(classifier.predict(x_test, as_iterable=True))
score = metrics.accuracy_score(y_test, predictions)
print('Accuracy: {0:f}'.format(score))
WARNING:tensorflow:float64 is not supported by many models, consider casting to float32.
WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmpmywphfkr
INFO:tensorflow:Using default config.
INFO:tensorflow:Using config: {'_task_type': None, '_save_checkpoints_steps': None, '_num_ps_replicas': 0, '_master': '', '_task_id': 0, '_is_chief': True, '_keep_checkpoint_max': 5, '_evaluation_master': '', '_tf_config': gpu_options {
per_process_gpu_memory_fraction: 1.0
}
, '_tf_random_seed': None, '_save_summary_steps': 100, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x7f208a991c50>, '_save_checkpoints_secs': 600, '_environment': 'local', '_keep_checkpoint_every_n_hours': 10000}
WARNING:tensorflow:From <ipython-input-3-26481773d80c>:11: calling BaseEstimator.fit (from tensorflow.contrib.learn.python.learn.estimators.estimator) with y is deprecated and will be removed after 2016-12-01.
Instructions for updating:
Estimator is decoupled from Scikit Learn interface by moving into
separate class SKCompat. Arguments x, y and batch_size are only
available in the SKCompat class, Estimator will only accept input_fn.
Example conversion:
est = Estimator(...) -> est = SKCompat(Estimator(...))
WARNING:tensorflow:From <ipython-input-3-26481773d80c>:11: calling BaseEstimator.fit (from tensorflow.contrib.learn.python.learn.estimators.estimator) with x is deprecated and will be removed after 2016-12-01.
Instructions for updating:
Estimator is decoupled from Scikit Learn interface by moving into
separate class SKCompat. Arguments x, y and batch_size are only
available in the SKCompat class, Estimator will only accept input_fn.
Example conversion:
est = Estimator(...) -> est = SKCompat(Estimator(...))
WARNING:tensorflow:float64 is not supported by many models, consider casting to float32.
WARNING:tensorflow:From /usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/head.py:1362: scalar_summary (from tensorflow.python.ops.logging_ops) is deprecated and will be removed after 2016-11-30.
Instructions for updating:
Please switch to tf.summary.scalar. Note that tf.summary.scalar uses the node name instead of the tag. This means that TensorFlow will automatically de-duplicate summary names based on the scope they are created in. Also, passing a tensor or list of tags to a scalar summary op is no longer supported.
/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py:247: FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.
equality = a == b
INFO:tensorflow:Create CheckpointSaverHook.
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1021 try:
-> 1022 return fn(*args)
1023 except errors.OpError as e:
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _run_fn(session, feed_dict, fetch_list, target_list, options, run_metadata)
1003 feed_dict, fetch_list, target_list,
-> 1004 status, run_metadata)
1005
/usr/lib/python3.5/contextlib.py in __exit__(self, type, value, traceback)
65 try:
---> 66 next(self.gen)
67 except StopIteration:
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/errors_impl.py in raise_exception_on_not_ok_status()
468 compat.as_text(pywrap_tensorflow.TF_Message(status)),
--> 469 pywrap_tensorflow.TF_GetCode(status))
470 finally:
InvalidArgumentError: WhereOp: Race condition between counting the number of true elements and writing them. When counting, saw 1908 elements; but when writing their indices, saw 18 elements.
[[Node: report_uninitialized_variables_1/boolean_mask/Where = Where[_device="/job:localhost/replica:0/task:0/cpu:0"](report_uninitialized_variables_1/boolean_mask/Reshape_1)]]
During handling of the above exception, another exception occurred:
InvalidArgumentError Traceback (most recent call last)
<ipython-input-3-26481773d80c> in <module>()
9 optimizer=optimizer_exp_decay)
10
---> 11 classifier.fit(x_train, y_train, steps=800)
12 predictions = list(classifier.predict(x_test, as_iterable=True))
13 score = metrics.accuracy_score(y_test, predictions)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
278 _call_location(), decorator_utils.get_qualified_name(func),
279 func.__module__, arg_name, date, instructions)
--> 280 return func(*args, **kwargs)
281 new_func.__doc__ = _add_deprecated_arg_notice_to_docstring(
282 func.__doc__, date, instructions)
/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py in fit(self, x, y, input_fn, steps, batch_size, monitors, max_steps)
408 _verify_input_args(x, y, input_fn, None, batch_size)
409 if x is not None:
--> 410 SKCompat(self).fit(x, y, batch_size, steps, max_steps, monitors)
411 return self
412
/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py in fit(self, x, y, batch_size, steps, max_steps, monitors)
1351 steps=steps,
1352 max_steps=max_steps,
-> 1353 monitors=all_monitors)
1354 return self
1355
/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
278 _call_location(), decorator_utils.get_qualified_name(func),
279 func.__module__, arg_name, date, instructions)
--> 280 return func(*args, **kwargs)
281 new_func.__doc__ = _add_deprecated_arg_notice_to_docstring(
282 func.__doc__, date, instructions)
/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py in fit(self, x, y, input_fn, steps, batch_size, monitors, max_steps)
424 hooks.append(basic_session_run_hooks.StopAtStepHook(steps, max_steps))
425
--> 426 loss = self._train_model(input_fn=input_fn, hooks=hooks)
427 logging.info('Loss for final step: %s.', loss)
428 return self
/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py in _train_model(self, input_fn, hooks)
979 save_checkpoint_secs=0, # Saving is handled by a hook.
980 save_summaries_steps=self._config.save_summary_steps,
--> 981 config=self.config.tf_config) as mon_sess:
982 loss = None
983 while not mon_sess.should_stop():
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py in MonitoredTrainingSession(master, is_chief, checkpoint_dir, scaffold, hooks, chief_only_hooks, save_checkpoint_secs, save_summaries_steps, config)
313 if hooks:
314 all_hooks.extend(hooks)
--> 315 return MonitoredSession(session_creator=session_creator, hooks=all_hooks)
316
317
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py in __init__(self, session_creator, hooks)
599 def __init__(self, session_creator=None, hooks=None):
600 super(MonitoredSession, self).__init__(
--> 601 session_creator, hooks, should_recover=True)
602
603
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py in __init__(self, session_creator, hooks, should_recover)
432 hooks=self._hooks)
433 if should_recover:
--> 434 self._sess = _RecoverableSession(self._coordinated_creator)
435 else:
436 self._sess = self._coordinated_creator.create_session()
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py in __init__(self, sess_creator)
765 """
766 self._sess_creator = sess_creator
--> 767 _WrappedSession.__init__(self, self._create_session())
768
769 def _create_session(self):
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py in _create_session(self)
770 while True:
771 try:
--> 772 return self._sess_creator.create_session()
773 except errors.AbortedError:
774 logging.info('An AbortedError was raised during initialization. '
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py in create_session(self)
492 """Creates a coordinated session."""
493 # Keep the tf_sess for unit testing.
--> 494 self.tf_sess = self._session_creator.create_session()
495 # We don't want coordinator to suppress any exception.
496 self.coord = coordinator.Coordinator(clean_stop_exception_types=[])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py in create_session(self)
373 init_op=self._scaffold.init_op,
374 init_feed_dict=self._scaffold.init_feed_dict,
--> 375 init_fn=self._scaffold.init_fn)
376
377
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/session_manager.py in prepare_session(self, master, init_op, saver, checkpoint_dir, checkpoint_filename_with_path, wait_for_checkpoint, max_wait_secs, config, init_feed_dict, init_fn)
264 init_fn(sess)
265
--> 266 local_init_success, msg = self._try_run_local_init_op(sess)
267 if not local_init_success:
268 raise RuntimeError(
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/session_manager.py in _try_run_local_init_op(self, sess)
463 """
464 if self._local_init_op is not None:
--> 465 is_ready_for_local_init, msg = self._model_ready_for_local_init(sess)
466 if is_ready_for_local_init:
467 sess.run(self._local_init_op)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/session_manager.py in _model_ready_for_local_init(self, sess)
448 """
449 return _ready(self._ready_for_local_init_op, sess,
--> 450 "Model not ready for local init")
451
452 def _try_run_local_init_op(self, sess):
/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/session_manager.py in _ready(op, sess, msg)
490 else:
491 try:
--> 492 ready_value = sess.run(op)
493 # The model is considered ready if ready_op returns an empty 1-D tensor.
494 # Also compare to `None` and dtype being int32 for backward
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata)
765 try:
766 result = self._run(None, fetches, feed_dict, options_ptr,
--> 767 run_metadata_ptr)
768 if run_metadata:
769 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
963 if final_fetches or final_targets:
964 results = self._do_run(handle, final_targets, final_fetches,
--> 965 feed_dict_string, options, run_metadata)
966 else:
967 results = []
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
1013 if handle is None:
1014 return self._do_call(_run_fn, self._session, feed_dict, fetch_list,
-> 1015 target_list, options, run_metadata)
1016 else:
1017 return self._do_call(_prun_fn, self._session, handle, feed_dict,
/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1033 except KeyError:
1034 pass
-> 1035 raise type(e)(node_def, op, message)
1036
1037 def _extend_graph(self):
InvalidArgumentError: WhereOp: Race condition between counting the number of true elements and writing them. When counting, saw 1908 elements; but when writing their indices, saw 18 elements.
[[Node: report_uninitialized_variables_1/boolean_mask/Where = Where[_device="/job:localhost/replica:0/task:0/cpu:0"](report_uninitialized_variables_1/boolean_mask/Reshape_1)]]
Caused by op 'report_uninitialized_variables_1/boolean_mask/Where', defined at:
File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/pageu/.local/lib/python3.5/site-packages/ipykernel/__main__.py", line 3, in <module>
app.launch_new_instance()
File "/home/pageu/.local/lib/python3.5/site-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()
File "/home/pageu/.local/lib/python3.5/site-packages/ipykernel/kernelapp.py", line 474, in start
ioloop.IOLoop.instance().start()
File "/home/pageu/.local/lib/python3.5/site-packages/zmq/eventloop/ioloop.py", line 177, in start
super(ZMQIOLoop, self).start()
File "/home/pageu/.local/lib/python3.5/site-packages/tornado/ioloop.py", line 887, in start
handler_func(fd_obj, events)
File "/home/pageu/.local/lib/python3.5/site-packages/tornado/stack_context.py", line 275, in null_wrapper
return fn(*args, **kwargs)
File "/home/pageu/.local/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py", line 440, in _handle_events
self._handle_recv()
File "/home/pageu/.local/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py", line 472, in _handle_recv
self._run_callback(callback, msg)
File "/home/pageu/.local/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py", line 414, in _run_callback
callback(*args, **kwargs)
File "/home/pageu/.local/lib/python3.5/site-packages/tornado/stack_context.py", line 275, in null_wrapper
return fn(*args, **kwargs)
File "/home/pageu/.local/lib/python3.5/site-packages/ipykernel/kernelbase.py", line 276, in dispatcher
return self.dispatch_shell(stream, msg)
File "/home/pageu/.local/lib/python3.5/site-packages/ipykernel/kernelbase.py", line 228, in dispatch_shell
handler(stream, idents, msg)
File "/home/pageu/.local/lib/python3.5/site-packages/ipykernel/kernelbase.py", line 390, in execute_request
user_expressions, allow_stdin)
File "/home/pageu/.local/lib/python3.5/site-packages/ipykernel/ipkernel.py", line 196, in do_execute
res = shell.run_cell(code, store_history=store_history, silent=silent)
File "/home/pageu/.local/lib/python3.5/site-packages/ipykernel/zmqshell.py", line 501, in run_cell
return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "/home/pageu/.local/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2717, in run_cell
interactivity=interactivity, compiler=compiler, result=result)
File "/home/pageu/.local/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2821, in run_ast_nodes
if self.run_code(code, result):
File "/home/pageu/.local/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-3-26481773d80c>", line 11, in <module>
classifier.fit(x_train, y_train, steps=800)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py", line 280, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 410, in fit
SKCompat(self).fit(x, y, batch_size, steps, max_steps, monitors)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 1353, in fit
monitors=all_monitors)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py", line 280, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 426, in fit
loss = self._train_model(input_fn=input_fn, hooks=hooks)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 981, in _train_model
config=self.config.tf_config) as mon_sess:
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 315, in MonitoredTrainingSession
return MonitoredSession(session_creator=session_creator, hooks=all_hooks)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 601, in __init__
session_creator, hooks, should_recover=True)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 434, in __init__
self._sess = _RecoverableSession(self._coordinated_creator)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 767, in __init__
_WrappedSession.__init__(self, self._create_session())
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 772, in _create_session
return self._sess_creator.create_session()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 494, in create_session
self.tf_sess = self._session_creator.create_session()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 366, in create_session
self._scaffold.finalize()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 166, in finalize
default_ready_for_local_init_op)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 232, in get_or_default
op = default_constructor()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/monitored_session.py", line 163, in default_ready_for_local_init_op
variables.global_variables())
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/variables.py", line 1320, in report_uninitialized_variables
return array_ops.boolean_mask(variable_names_tensor, variables_mask)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/array_ops.py", line 1121, in boolean_mask
return _apply_mask_1d(tensor, mask)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/array_ops.py", line 1093, in _apply_mask_1d
indices = squeeze(where(mask), squeeze_dims=[1])
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/array_ops.py", line 2317, in where
return gen_array_ops.where(input=condition, name=name)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 4010, in where
result = _op_def_lib.apply_op("Where", input=input, name=name)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/op_def_library.py", line 763, in apply_op
op_def=op_def)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 2395, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 1264, in __init__
self._traceback = _extract_stack()
InvalidArgumentError (see above for traceback): WhereOp: Race condition between counting the number of true elements and writing them. When counting, saw 1908 elements; but when writing their indices, saw 18 elements.
[[Node: report_uninitialized_variables_1/boolean_mask/Where = Where[_device="/job:localhost/replica:0/task:0/cpu:0"](report_uninitialized_variables_1/boolean_mask/Reshape_1)]]
In [ ]:
Content source: LogicWang/ml
Similar notebooks: