diff --git a/tensorflow/g3doc/api_docs/python/index.md b/tensorflow/g3doc/api_docs/python/index.md
index c9b245f8367..c2b2a72d2b0 100644
--- a/tensorflow/g3doc/api_docs/python/index.md
+++ b/tensorflow/g3doc/api_docs/python/index.md
@@ -2,349 +2,349 @@
# TensorFlow Python reference documentation
-* **[Building Graphs](framework.md)**:
- * [`add_to_collection`](framework.md#add_to_collection)
- * [`as_dtype`](framework.md#as_dtype)
- * [`control_dependencies`](framework.md#control_dependencies)
- * [`convert_to_tensor`](framework.md#convert_to_tensor)
- * [`device`](framework.md#device)
- * [`Dimension`](framework.md#Dimension)
- * [`DType`](framework.md#DType)
- * [`get_collection`](framework.md#get_collection)
- * [`get_default_graph`](framework.md#get_default_graph)
- * [`get_seed`](framework.md#get_seed)
- * [`Graph`](framework.md#Graph)
- * [`GraphKeys`](framework.md#GraphKeys)
- * [`import_graph_def`](framework.md#import_graph_def)
- * [`name_scope`](framework.md#name_scope)
- * [`NoGradient`](framework.md#NoGradient)
- * [`op_scope`](framework.md#op_scope)
- * [`Operation`](framework.md#Operation)
- * [`RegisterGradient`](framework.md#RegisterGradient)
- * [`RegisterShape`](framework.md#RegisterShape)
- * [`Tensor`](framework.md#Tensor)
- * [`TensorShape`](framework.md#TensorShape)
+* **[Building Graphs](../../api_docs/python/framework.md)**:
+ * [`add_to_collection`](../../api_docs/python/framework.md#add_to_collection)
+ * [`as_dtype`](../../api_docs/python/framework.md#as_dtype)
+ * [`control_dependencies`](../../api_docs/python/framework.md#control_dependencies)
+ * [`convert_to_tensor`](../../api_docs/python/framework.md#convert_to_tensor)
+ * [`device`](../../api_docs/python/framework.md#device)
+ * [`Dimension`](../../api_docs/python/framework.md#Dimension)
+ * [`DType`](../../api_docs/python/framework.md#DType)
+ * [`get_collection`](../../api_docs/python/framework.md#get_collection)
+ * [`get_default_graph`](../../api_docs/python/framework.md#get_default_graph)
+ * [`get_seed`](../../api_docs/python/framework.md#get_seed)
+ * [`Graph`](../../api_docs/python/framework.md#Graph)
+ * [`GraphKeys`](../../api_docs/python/framework.md#GraphKeys)
+ * [`import_graph_def`](../../api_docs/python/framework.md#import_graph_def)
+ * [`name_scope`](../../api_docs/python/framework.md#name_scope)
+ * [`NoGradient`](../../api_docs/python/framework.md#NoGradient)
+ * [`op_scope`](../../api_docs/python/framework.md#op_scope)
+ * [`Operation`](../../api_docs/python/framework.md#Operation)
+ * [`RegisterGradient`](../../api_docs/python/framework.md#RegisterGradient)
+ * [`RegisterShape`](../../api_docs/python/framework.md#RegisterShape)
+ * [`Tensor`](../../api_docs/python/framework.md#Tensor)
+ * [`TensorShape`](../../api_docs/python/framework.md#TensorShape)
-* **[Constants, Sequences, and Random Values](constant_op.md)**:
- * [`constant`](constant_op.md#constant)
- * [`fill`](constant_op.md#fill)
- * [`linspace`](constant_op.md#linspace)
- * [`ones`](constant_op.md#ones)
- * [`ones_like`](constant_op.md#ones_like)
- * [`random_normal`](constant_op.md#random_normal)
- * [`random_shuffle`](constant_op.md#random_shuffle)
- * [`random_uniform`](constant_op.md#random_uniform)
- * [`range`](constant_op.md#range)
- * [`set_random_seed`](constant_op.md#set_random_seed)
- * [`truncated_normal`](constant_op.md#truncated_normal)
- * [`zeros`](constant_op.md#zeros)
- * [`zeros_like`](constant_op.md#zeros_like)
+* **[Constants, Sequences, and Random Values](../../api_docs/python/constant_op.md)**:
+ * [`constant`](../../api_docs/python/constant_op.md#constant)
+ * [`fill`](../../api_docs/python/constant_op.md#fill)
+ * [`linspace`](../../api_docs/python/constant_op.md#linspace)
+ * [`ones`](../../api_docs/python/constant_op.md#ones)
+ * [`ones_like`](../../api_docs/python/constant_op.md#ones_like)
+ * [`random_normal`](../../api_docs/python/constant_op.md#random_normal)
+ * [`random_shuffle`](../../api_docs/python/constant_op.md#random_shuffle)
+ * [`random_uniform`](../../api_docs/python/constant_op.md#random_uniform)
+ * [`range`](../../api_docs/python/constant_op.md#range)
+ * [`set_random_seed`](../../api_docs/python/constant_op.md#set_random_seed)
+ * [`truncated_normal`](../../api_docs/python/constant_op.md#truncated_normal)
+ * [`zeros`](../../api_docs/python/constant_op.md#zeros)
+ * [`zeros_like`](../../api_docs/python/constant_op.md#zeros_like)
-* **[Variables](state_ops.md)**:
- * [`all_variables`](state_ops.md#all_variables)
- * [`assert_variables_initialized`](state_ops.md#assert_variables_initialized)
- * [`assign`](state_ops.md#assign)
- * [`assign_add`](state_ops.md#assign_add)
- * [`assign_sub`](state_ops.md#assign_sub)
- * [`constant_initializer`](state_ops.md#constant_initializer)
- * [`count_up_to`](state_ops.md#count_up_to)
- * [`device`](state_ops.md#device)
- * [`get_checkpoint_state`](state_ops.md#get_checkpoint_state)
- * [`get_variable`](state_ops.md#get_variable)
- * [`get_variable_scope`](state_ops.md#get_variable_scope)
- * [`IndexedSlices`](state_ops.md#IndexedSlices)
- * [`initialize_all_variables`](state_ops.md#initialize_all_variables)
- * [`initialize_variables`](state_ops.md#initialize_variables)
- * [`latest_checkpoint`](state_ops.md#latest_checkpoint)
- * [`random_normal_initializer`](state_ops.md#random_normal_initializer)
- * [`random_uniform_initializer`](state_ops.md#random_uniform_initializer)
- * [`Saver`](state_ops.md#Saver)
- * [`scatter_add`](state_ops.md#scatter_add)
- * [`scatter_sub`](state_ops.md#scatter_sub)
- * [`scatter_update`](state_ops.md#scatter_update)
- * [`sparse_mask`](state_ops.md#sparse_mask)
- * [`trainable_variables`](state_ops.md#trainable_variables)
- * [`truncated_normal_initializer`](state_ops.md#truncated_normal_initializer)
- * [`uniform_unit_scaling_initializer`](state_ops.md#uniform_unit_scaling_initializer)
- * [`update_checkpoint_state`](state_ops.md#update_checkpoint_state)
- * [`Variable`](state_ops.md#Variable)
- * [`variable_scope`](state_ops.md#variable_scope)
- * [`zeros_initializer`](state_ops.md#zeros_initializer)
+* **[Variables](../../api_docs/python/state_ops.md)**:
+ * [`all_variables`](../../api_docs/python/state_ops.md#all_variables)
+ * [`assert_variables_initialized`](../../api_docs/python/state_ops.md#assert_variables_initialized)
+ * [`assign`](../../api_docs/python/state_ops.md#assign)
+ * [`assign_add`](../../api_docs/python/state_ops.md#assign_add)
+ * [`assign_sub`](../../api_docs/python/state_ops.md#assign_sub)
+ * [`constant_initializer`](../../api_docs/python/state_ops.md#constant_initializer)
+ * [`count_up_to`](../../api_docs/python/state_ops.md#count_up_to)
+ * [`device`](../../api_docs/python/state_ops.md#device)
+ * [`get_checkpoint_state`](../../api_docs/python/state_ops.md#get_checkpoint_state)
+ * [`get_variable`](../../api_docs/python/state_ops.md#get_variable)
+ * [`get_variable_scope`](../../api_docs/python/state_ops.md#get_variable_scope)
+ * [`IndexedSlices`](../../api_docs/python/state_ops.md#IndexedSlices)
+ * [`initialize_all_variables`](../../api_docs/python/state_ops.md#initialize_all_variables)
+ * [`initialize_variables`](../../api_docs/python/state_ops.md#initialize_variables)
+ * [`latest_checkpoint`](../../api_docs/python/state_ops.md#latest_checkpoint)
+ * [`random_normal_initializer`](../../api_docs/python/state_ops.md#random_normal_initializer)
+ * [`random_uniform_initializer`](../../api_docs/python/state_ops.md#random_uniform_initializer)
+ * [`Saver`](../../api_docs/python/state_ops.md#Saver)
+ * [`scatter_add`](../../api_docs/python/state_ops.md#scatter_add)
+ * [`scatter_sub`](../../api_docs/python/state_ops.md#scatter_sub)
+ * [`scatter_update`](../../api_docs/python/state_ops.md#scatter_update)
+ * [`sparse_mask`](../../api_docs/python/state_ops.md#sparse_mask)
+ * [`trainable_variables`](../../api_docs/python/state_ops.md#trainable_variables)
+ * [`truncated_normal_initializer`](../../api_docs/python/state_ops.md#truncated_normal_initializer)
+ * [`uniform_unit_scaling_initializer`](../../api_docs/python/state_ops.md#uniform_unit_scaling_initializer)
+ * [`update_checkpoint_state`](../../api_docs/python/state_ops.md#update_checkpoint_state)
+ * [`Variable`](../../api_docs/python/state_ops.md#Variable)
+ * [`variable_scope`](../../api_docs/python/state_ops.md#variable_scope)
+ * [`zeros_initializer`](../../api_docs/python/state_ops.md#zeros_initializer)
-* **[Tensor Transformations](array_ops.md)**:
- * [`cast`](array_ops.md#cast)
- * [`concat`](array_ops.md#concat)
- * [`dynamic_partition`](array_ops.md#dynamic_partition)
- * [`dynamic_stitch`](array_ops.md#dynamic_stitch)
- * [`expand_dims`](array_ops.md#expand_dims)
- * [`gather`](array_ops.md#gather)
- * [`pack`](array_ops.md#pack)
- * [`pad`](array_ops.md#pad)
- * [`rank`](array_ops.md#rank)
- * [`reshape`](array_ops.md#reshape)
- * [`reverse`](array_ops.md#reverse)
- * [`reverse_sequence`](array_ops.md#reverse_sequence)
- * [`shape`](array_ops.md#shape)
- * [`size`](array_ops.md#size)
- * [`slice`](array_ops.md#slice)
- * [`split`](array_ops.md#split)
- * [`squeeze`](array_ops.md#squeeze)
- * [`string_to_number`](array_ops.md#string_to_number)
- * [`tile`](array_ops.md#tile)
- * [`to_bfloat16`](array_ops.md#to_bfloat16)
- * [`to_double`](array_ops.md#to_double)
- * [`to_float`](array_ops.md#to_float)
- * [`to_int32`](array_ops.md#to_int32)
- * [`to_int64`](array_ops.md#to_int64)
- * [`transpose`](array_ops.md#transpose)
- * [`unpack`](array_ops.md#unpack)
+* **[Tensor Transformations](../../api_docs/python/array_ops.md)**:
+ * [`cast`](../../api_docs/python/array_ops.md#cast)
+ * [`concat`](../../api_docs/python/array_ops.md#concat)
+ * [`dynamic_partition`](../../api_docs/python/array_ops.md#dynamic_partition)
+ * [`dynamic_stitch`](../../api_docs/python/array_ops.md#dynamic_stitch)
+ * [`expand_dims`](../../api_docs/python/array_ops.md#expand_dims)
+ * [`gather`](../../api_docs/python/array_ops.md#gather)
+ * [`pack`](../../api_docs/python/array_ops.md#pack)
+ * [`pad`](../../api_docs/python/array_ops.md#pad)
+ * [`rank`](../../api_docs/python/array_ops.md#rank)
+ * [`reshape`](../../api_docs/python/array_ops.md#reshape)
+ * [`reverse`](../../api_docs/python/array_ops.md#reverse)
+ * [`reverse_sequence`](../../api_docs/python/array_ops.md#reverse_sequence)
+ * [`shape`](../../api_docs/python/array_ops.md#shape)
+ * [`size`](../../api_docs/python/array_ops.md#size)
+ * [`slice`](../../api_docs/python/array_ops.md#slice)
+ * [`split`](../../api_docs/python/array_ops.md#split)
+ * [`squeeze`](../../api_docs/python/array_ops.md#squeeze)
+ * [`string_to_number`](../../api_docs/python/array_ops.md#string_to_number)
+ * [`tile`](../../api_docs/python/array_ops.md#tile)
+ * [`to_bfloat16`](../../api_docs/python/array_ops.md#to_bfloat16)
+ * [`to_double`](../../api_docs/python/array_ops.md#to_double)
+ * [`to_float`](../../api_docs/python/array_ops.md#to_float)
+ * [`to_int32`](../../api_docs/python/array_ops.md#to_int32)
+ * [`to_int64`](../../api_docs/python/array_ops.md#to_int64)
+ * [`transpose`](../../api_docs/python/array_ops.md#transpose)
+ * [`unpack`](../../api_docs/python/array_ops.md#unpack)
-* **[Math](math_ops.md)**:
- * [`abs`](math_ops.md#abs)
- * [`accumulate_n`](math_ops.md#accumulate_n)
- * [`add`](math_ops.md#add)
- * [`add_n`](math_ops.md#add_n)
- * [`argmax`](math_ops.md#argmax)
- * [`argmin`](math_ops.md#argmin)
- * [`batch_cholesky`](math_ops.md#batch_cholesky)
- * [`batch_matmul`](math_ops.md#batch_matmul)
- * [`batch_matrix_determinant`](math_ops.md#batch_matrix_determinant)
- * [`batch_matrix_inverse`](math_ops.md#batch_matrix_inverse)
- * [`ceil`](math_ops.md#ceil)
- * [`cholesky`](math_ops.md#cholesky)
- * [`complex`](math_ops.md#complex)
- * [`complex_abs`](math_ops.md#complex_abs)
- * [`conj`](math_ops.md#conj)
- * [`cos`](math_ops.md#cos)
- * [`diag`](math_ops.md#diag)
- * [`div`](math_ops.md#div)
- * [`edit_distance`](math_ops.md#edit_distance)
- * [`exp`](math_ops.md#exp)
- * [`floor`](math_ops.md#floor)
- * [`imag`](math_ops.md#imag)
- * [`inv`](math_ops.md#inv)
- * [`invert_permutation`](math_ops.md#invert_permutation)
- * [`listdiff`](math_ops.md#listdiff)
- * [`log`](math_ops.md#log)
- * [`matmul`](math_ops.md#matmul)
- * [`matrix_determinant`](math_ops.md#matrix_determinant)
- * [`matrix_inverse`](math_ops.md#matrix_inverse)
- * [`maximum`](math_ops.md#maximum)
- * [`minimum`](math_ops.md#minimum)
- * [`mod`](math_ops.md#mod)
- * [`mul`](math_ops.md#mul)
- * [`neg`](math_ops.md#neg)
- * [`pow`](math_ops.md#pow)
- * [`real`](math_ops.md#real)
- * [`reduce_all`](math_ops.md#reduce_all)
- * [`reduce_any`](math_ops.md#reduce_any)
- * [`reduce_max`](math_ops.md#reduce_max)
- * [`reduce_mean`](math_ops.md#reduce_mean)
- * [`reduce_min`](math_ops.md#reduce_min)
- * [`reduce_prod`](math_ops.md#reduce_prod)
- * [`reduce_sum`](math_ops.md#reduce_sum)
- * [`round`](math_ops.md#round)
- * [`rsqrt`](math_ops.md#rsqrt)
- * [`segment_max`](math_ops.md#segment_max)
- * [`segment_mean`](math_ops.md#segment_mean)
- * [`segment_min`](math_ops.md#segment_min)
- * [`segment_prod`](math_ops.md#segment_prod)
- * [`segment_sum`](math_ops.md#segment_sum)
- * [`sign`](math_ops.md#sign)
- * [`sin`](math_ops.md#sin)
- * [`sparse_segment_mean`](math_ops.md#sparse_segment_mean)
- * [`sparse_segment_sum`](math_ops.md#sparse_segment_sum)
- * [`sqrt`](math_ops.md#sqrt)
- * [`square`](math_ops.md#square)
- * [`sub`](math_ops.md#sub)
- * [`transpose`](math_ops.md#transpose)
- * [`unique`](math_ops.md#unique)
- * [`unsorted_segment_sum`](math_ops.md#unsorted_segment_sum)
- * [`where`](math_ops.md#where)
+* **[Math](../../api_docs/python/math_ops.md)**:
+ * [`abs`](../../api_docs/python/math_ops.md#abs)
+ * [`accumulate_n`](../../api_docs/python/math_ops.md#accumulate_n)
+ * [`add`](../../api_docs/python/math_ops.md#add)
+ * [`add_n`](../../api_docs/python/math_ops.md#add_n)
+ * [`argmax`](../../api_docs/python/math_ops.md#argmax)
+ * [`argmin`](../../api_docs/python/math_ops.md#argmin)
+ * [`batch_cholesky`](../../api_docs/python/math_ops.md#batch_cholesky)
+ * [`batch_matmul`](../../api_docs/python/math_ops.md#batch_matmul)
+ * [`batch_matrix_determinant`](../../api_docs/python/math_ops.md#batch_matrix_determinant)
+ * [`batch_matrix_inverse`](../../api_docs/python/math_ops.md#batch_matrix_inverse)
+ * [`ceil`](../../api_docs/python/math_ops.md#ceil)
+ * [`cholesky`](../../api_docs/python/math_ops.md#cholesky)
+ * [`complex`](../../api_docs/python/math_ops.md#complex)
+ * [`complex_abs`](../../api_docs/python/math_ops.md#complex_abs)
+ * [`conj`](../../api_docs/python/math_ops.md#conj)
+ * [`cos`](../../api_docs/python/math_ops.md#cos)
+ * [`diag`](../../api_docs/python/math_ops.md#diag)
+ * [`div`](../../api_docs/python/math_ops.md#div)
+ * [`edit_distance`](../../api_docs/python/math_ops.md#edit_distance)
+ * [`exp`](../../api_docs/python/math_ops.md#exp)
+ * [`floor`](../../api_docs/python/math_ops.md#floor)
+ * [`imag`](../../api_docs/python/math_ops.md#imag)
+ * [`inv`](../../api_docs/python/math_ops.md#inv)
+ * [`invert_permutation`](../../api_docs/python/math_ops.md#invert_permutation)
+ * [`listdiff`](../../api_docs/python/math_ops.md#listdiff)
+ * [`log`](../../api_docs/python/math_ops.md#log)
+ * [`matmul`](../../api_docs/python/math_ops.md#matmul)
+ * [`matrix_determinant`](../../api_docs/python/math_ops.md#matrix_determinant)
+ * [`matrix_inverse`](../../api_docs/python/math_ops.md#matrix_inverse)
+ * [`maximum`](../../api_docs/python/math_ops.md#maximum)
+ * [`minimum`](../../api_docs/python/math_ops.md#minimum)
+ * [`mod`](../../api_docs/python/math_ops.md#mod)
+ * [`mul`](../../api_docs/python/math_ops.md#mul)
+ * [`neg`](../../api_docs/python/math_ops.md#neg)
+ * [`pow`](../../api_docs/python/math_ops.md#pow)
+ * [`real`](../../api_docs/python/math_ops.md#real)
+ * [`reduce_all`](../../api_docs/python/math_ops.md#reduce_all)
+ * [`reduce_any`](../../api_docs/python/math_ops.md#reduce_any)
+ * [`reduce_max`](../../api_docs/python/math_ops.md#reduce_max)
+ * [`reduce_mean`](../../api_docs/python/math_ops.md#reduce_mean)
+ * [`reduce_min`](../../api_docs/python/math_ops.md#reduce_min)
+ * [`reduce_prod`](../../api_docs/python/math_ops.md#reduce_prod)
+ * [`reduce_sum`](../../api_docs/python/math_ops.md#reduce_sum)
+ * [`round`](../../api_docs/python/math_ops.md#round)
+ * [`rsqrt`](../../api_docs/python/math_ops.md#rsqrt)
+ * [`segment_max`](../../api_docs/python/math_ops.md#segment_max)
+ * [`segment_mean`](../../api_docs/python/math_ops.md#segment_mean)
+ * [`segment_min`](../../api_docs/python/math_ops.md#segment_min)
+ * [`segment_prod`](../../api_docs/python/math_ops.md#segment_prod)
+ * [`segment_sum`](../../api_docs/python/math_ops.md#segment_sum)
+ * [`sign`](../../api_docs/python/math_ops.md#sign)
+ * [`sin`](../../api_docs/python/math_ops.md#sin)
+ * [`sparse_segment_mean`](../../api_docs/python/math_ops.md#sparse_segment_mean)
+ * [`sparse_segment_sum`](../../api_docs/python/math_ops.md#sparse_segment_sum)
+ * [`sqrt`](../../api_docs/python/math_ops.md#sqrt)
+ * [`square`](../../api_docs/python/math_ops.md#square)
+ * [`sub`](../../api_docs/python/math_ops.md#sub)
+ * [`transpose`](../../api_docs/python/math_ops.md#transpose)
+ * [`unique`](../../api_docs/python/math_ops.md#unique)
+ * [`unsorted_segment_sum`](../../api_docs/python/math_ops.md#unsorted_segment_sum)
+ * [`where`](../../api_docs/python/math_ops.md#where)
-* **[Control Flow](control_flow_ops.md)**:
- * [`add_check_numerics_ops`](control_flow_ops.md#add_check_numerics_ops)
- * [`Assert`](control_flow_ops.md#Assert)
- * [`check_numerics`](control_flow_ops.md#check_numerics)
- * [`count_up_to`](control_flow_ops.md#count_up_to)
- * [`equal`](control_flow_ops.md#equal)
- * [`greater`](control_flow_ops.md#greater)
- * [`greater_equal`](control_flow_ops.md#greater_equal)
- * [`group`](control_flow_ops.md#group)
- * [`identity`](control_flow_ops.md#identity)
- * [`is_finite`](control_flow_ops.md#is_finite)
- * [`is_inf`](control_flow_ops.md#is_inf)
- * [`is_nan`](control_flow_ops.md#is_nan)
- * [`less`](control_flow_ops.md#less)
- * [`less_equal`](control_flow_ops.md#less_equal)
- * [`logical_and`](control_flow_ops.md#logical_and)
- * [`logical_not`](control_flow_ops.md#logical_not)
- * [`logical_or`](control_flow_ops.md#logical_or)
- * [`logical_xor`](control_flow_ops.md#logical_xor)
- * [`no_op`](control_flow_ops.md#no_op)
- * [`not_equal`](control_flow_ops.md#not_equal)
- * [`Print`](control_flow_ops.md#Print)
- * [`select`](control_flow_ops.md#select)
- * [`tuple`](control_flow_ops.md#tuple)
- * [`verify_tensor_all_finite`](control_flow_ops.md#verify_tensor_all_finite)
- * [`where`](control_flow_ops.md#where)
+* **[Control Flow](../../api_docs/python/control_flow_ops.md)**:
+ * [`add_check_numerics_ops`](../../api_docs/python/control_flow_ops.md#add_check_numerics_ops)
+ * [`Assert`](../../api_docs/python/control_flow_ops.md#Assert)
+ * [`check_numerics`](../../api_docs/python/control_flow_ops.md#check_numerics)
+ * [`count_up_to`](../../api_docs/python/control_flow_ops.md#count_up_to)
+ * [`equal`](../../api_docs/python/control_flow_ops.md#equal)
+ * [`greater`](../../api_docs/python/control_flow_ops.md#greater)
+ * [`greater_equal`](../../api_docs/python/control_flow_ops.md#greater_equal)
+ * [`group`](../../api_docs/python/control_flow_ops.md#group)
+ * [`identity`](../../api_docs/python/control_flow_ops.md#identity)
+ * [`is_finite`](../../api_docs/python/control_flow_ops.md#is_finite)
+ * [`is_inf`](../../api_docs/python/control_flow_ops.md#is_inf)
+ * [`is_nan`](../../api_docs/python/control_flow_ops.md#is_nan)
+ * [`less`](../../api_docs/python/control_flow_ops.md#less)
+ * [`less_equal`](../../api_docs/python/control_flow_ops.md#less_equal)
+ * [`logical_and`](../../api_docs/python/control_flow_ops.md#logical_and)
+ * [`logical_not`](../../api_docs/python/control_flow_ops.md#logical_not)
+ * [`logical_or`](../../api_docs/python/control_flow_ops.md#logical_or)
+ * [`logical_xor`](../../api_docs/python/control_flow_ops.md#logical_xor)
+ * [`no_op`](../../api_docs/python/control_flow_ops.md#no_op)
+ * [`not_equal`](../../api_docs/python/control_flow_ops.md#not_equal)
+ * [`Print`](../../api_docs/python/control_flow_ops.md#Print)
+ * [`select`](../../api_docs/python/control_flow_ops.md#select)
+ * [`tuple`](../../api_docs/python/control_flow_ops.md#tuple)
+ * [`verify_tensor_all_finite`](../../api_docs/python/control_flow_ops.md#verify_tensor_all_finite)
+ * [`where`](../../api_docs/python/control_flow_ops.md#where)
-* **[Images](image.md)**:
- * [`adjust_brightness`](image.md#adjust_brightness)
- * [`adjust_contrast`](image.md#adjust_contrast)
- * [`crop_to_bounding_box`](image.md#crop_to_bounding_box)
- * [`decode_jpeg`](image.md#decode_jpeg)
- * [`decode_png`](image.md#decode_png)
- * [`encode_jpeg`](image.md#encode_jpeg)
- * [`encode_png`](image.md#encode_png)
- * [`extract_glimpse`](image.md#extract_glimpse)
- * [`flip_left_right`](image.md#flip_left_right)
- * [`flip_up_down`](image.md#flip_up_down)
- * [`pad_to_bounding_box`](image.md#pad_to_bounding_box)
- * [`per_image_whitening`](image.md#per_image_whitening)
- * [`random_brightness`](image.md#random_brightness)
- * [`random_contrast`](image.md#random_contrast)
- * [`random_crop`](image.md#random_crop)
- * [`random_flip_left_right`](image.md#random_flip_left_right)
- * [`random_flip_up_down`](image.md#random_flip_up_down)
- * [`resize_area`](image.md#resize_area)
- * [`resize_bicubic`](image.md#resize_bicubic)
- * [`resize_bilinear`](image.md#resize_bilinear)
- * [`resize_image_with_crop_or_pad`](image.md#resize_image_with_crop_or_pad)
- * [`resize_images`](image.md#resize_images)
- * [`resize_nearest_neighbor`](image.md#resize_nearest_neighbor)
- * [`transpose_image`](image.md#transpose_image)
+* **[Images](../../api_docs/python/image.md)**:
+ * [`adjust_brightness`](../../api_docs/python/image.md#adjust_brightness)
+ * [`adjust_contrast`](../../api_docs/python/image.md#adjust_contrast)
+ * [`crop_to_bounding_box`](../../api_docs/python/image.md#crop_to_bounding_box)
+ * [`decode_jpeg`](../../api_docs/python/image.md#decode_jpeg)
+ * [`decode_png`](../../api_docs/python/image.md#decode_png)
+ * [`encode_jpeg`](../../api_docs/python/image.md#encode_jpeg)
+ * [`encode_png`](../../api_docs/python/image.md#encode_png)
+ * [`extract_glimpse`](../../api_docs/python/image.md#extract_glimpse)
+ * [`flip_left_right`](../../api_docs/python/image.md#flip_left_right)
+ * [`flip_up_down`](../../api_docs/python/image.md#flip_up_down)
+ * [`pad_to_bounding_box`](../../api_docs/python/image.md#pad_to_bounding_box)
+ * [`per_image_whitening`](../../api_docs/python/image.md#per_image_whitening)
+ * [`random_brightness`](../../api_docs/python/image.md#random_brightness)
+ * [`random_contrast`](../../api_docs/python/image.md#random_contrast)
+ * [`random_crop`](../../api_docs/python/image.md#random_crop)
+ * [`random_flip_left_right`](../../api_docs/python/image.md#random_flip_left_right)
+ * [`random_flip_up_down`](../../api_docs/python/image.md#random_flip_up_down)
+ * [`resize_area`](../../api_docs/python/image.md#resize_area)
+ * [`resize_bicubic`](../../api_docs/python/image.md#resize_bicubic)
+ * [`resize_bilinear`](../../api_docs/python/image.md#resize_bilinear)
+ * [`resize_image_with_crop_or_pad`](../../api_docs/python/image.md#resize_image_with_crop_or_pad)
+ * [`resize_images`](../../api_docs/python/image.md#resize_images)
+ * [`resize_nearest_neighbor`](../../api_docs/python/image.md#resize_nearest_neighbor)
+ * [`transpose_image`](../../api_docs/python/image.md#transpose_image)
-* **[Sparse Tensors](sparse_ops.md)**:
- * [`shape`](sparse_ops.md#shape)
- * [`sparse_concat`](sparse_ops.md#sparse_concat)
- * [`sparse_fill_empty_rows`](sparse_ops.md#sparse_fill_empty_rows)
- * [`sparse_reorder`](sparse_ops.md#sparse_reorder)
- * [`sparse_retain`](sparse_ops.md#sparse_retain)
- * [`sparse_tensor_to_dense`](sparse_ops.md#sparse_tensor_to_dense)
- * [`sparse_to_dense`](sparse_ops.md#sparse_to_dense)
- * [`sparse_to_indicator`](sparse_ops.md#sparse_to_indicator)
- * [`SparseTensor`](sparse_ops.md#SparseTensor)
- * [`SparseTensorValue`](sparse_ops.md#SparseTensorValue)
+* **[Sparse Tensors](../../api_docs/python/sparse_ops.md)**:
+ * [`shape`](../../api_docs/python/sparse_ops.md#shape)
+ * [`sparse_concat`](../../api_docs/python/sparse_ops.md#sparse_concat)
+ * [`sparse_fill_empty_rows`](../../api_docs/python/sparse_ops.md#sparse_fill_empty_rows)
+ * [`sparse_reorder`](../../api_docs/python/sparse_ops.md#sparse_reorder)
+ * [`sparse_retain`](../../api_docs/python/sparse_ops.md#sparse_retain)
+ * [`sparse_tensor_to_dense`](../../api_docs/python/sparse_ops.md#sparse_tensor_to_dense)
+ * [`sparse_to_dense`](../../api_docs/python/sparse_ops.md#sparse_to_dense)
+ * [`sparse_to_indicator`](../../api_docs/python/sparse_ops.md#sparse_to_indicator)
+ * [`SparseTensor`](../../api_docs/python/sparse_ops.md#SparseTensor)
+ * [`SparseTensorValue`](../../api_docs/python/sparse_ops.md#SparseTensorValue)
-* **[Inputs and Readers](io_ops.md)**:
- * [`batch`](io_ops.md#batch)
- * [`batch_join`](io_ops.md#batch_join)
- * [`decode_csv`](io_ops.md#decode_csv)
- * [`decode_raw`](io_ops.md#decode_raw)
- * [`FIFOQueue`](io_ops.md#FIFOQueue)
- * [`FixedLengthRecordReader`](io_ops.md#FixedLengthRecordReader)
- * [`IdentityReader`](io_ops.md#IdentityReader)
- * [`limit_epochs`](io_ops.md#limit_epochs)
- * [`match_filenames_once`](io_ops.md#match_filenames_once)
- * [`matching_files`](io_ops.md#matching_files)
- * [`parse_example`](io_ops.md#parse_example)
- * [`parse_single_example`](io_ops.md#parse_single_example)
- * [`placeholder`](io_ops.md#placeholder)
- * [`QueueBase`](io_ops.md#QueueBase)
- * [`RandomShuffleQueue`](io_ops.md#RandomShuffleQueue)
- * [`range_input_producer`](io_ops.md#range_input_producer)
- * [`read_file`](io_ops.md#read_file)
- * [`ReaderBase`](io_ops.md#ReaderBase)
- * [`shuffle_batch`](io_ops.md#shuffle_batch)
- * [`shuffle_batch_join`](io_ops.md#shuffle_batch_join)
- * [`size`](io_ops.md#size)
- * [`slice_input_producer`](io_ops.md#slice_input_producer)
- * [`string_input_producer`](io_ops.md#string_input_producer)
- * [`TextLineReader`](io_ops.md#TextLineReader)
- * [`TFRecordReader`](io_ops.md#TFRecordReader)
- * [`WholeFileReader`](io_ops.md#WholeFileReader)
+* **[Inputs and Readers](../../api_docs/python/io_ops.md)**:
+ * [`batch`](../../api_docs/python/io_ops.md#batch)
+ * [`batch_join`](../../api_docs/python/io_ops.md#batch_join)
+ * [`decode_csv`](../../api_docs/python/io_ops.md#decode_csv)
+ * [`decode_raw`](../../api_docs/python/io_ops.md#decode_raw)
+ * [`FIFOQueue`](../../api_docs/python/io_ops.md#FIFOQueue)
+ * [`FixedLengthRecordReader`](../../api_docs/python/io_ops.md#FixedLengthRecordReader)
+ * [`IdentityReader`](../../api_docs/python/io_ops.md#IdentityReader)
+ * [`limit_epochs`](../../api_docs/python/io_ops.md#limit_epochs)
+ * [`match_filenames_once`](../../api_docs/python/io_ops.md#match_filenames_once)
+ * [`matching_files`](../../api_docs/python/io_ops.md#matching_files)
+ * [`parse_example`](../../api_docs/python/io_ops.md#parse_example)
+ * [`parse_single_example`](../../api_docs/python/io_ops.md#parse_single_example)
+ * [`placeholder`](../../api_docs/python/io_ops.md#placeholder)
+ * [`QueueBase`](../../api_docs/python/io_ops.md#QueueBase)
+ * [`RandomShuffleQueue`](../../api_docs/python/io_ops.md#RandomShuffleQueue)
+ * [`range_input_producer`](../../api_docs/python/io_ops.md#range_input_producer)
+ * [`read_file`](../../api_docs/python/io_ops.md#read_file)
+ * [`ReaderBase`](../../api_docs/python/io_ops.md#ReaderBase)
+ * [`shuffle_batch`](../../api_docs/python/io_ops.md#shuffle_batch)
+ * [`shuffle_batch_join`](../../api_docs/python/io_ops.md#shuffle_batch_join)
+ * [`size`](../../api_docs/python/io_ops.md#size)
+ * [`slice_input_producer`](../../api_docs/python/io_ops.md#slice_input_producer)
+ * [`string_input_producer`](../../api_docs/python/io_ops.md#string_input_producer)
+ * [`TextLineReader`](../../api_docs/python/io_ops.md#TextLineReader)
+ * [`TFRecordReader`](../../api_docs/python/io_ops.md#TFRecordReader)
+ * [`WholeFileReader`](../../api_docs/python/io_ops.md#WholeFileReader)
-* **[Data IO (Python functions)](python_io.md)**:
- * [`tf_record_iterator`](python_io.md#tf_record_iterator)
- * [`TFRecordWriter`](python_io.md#TFRecordWriter)
+* **[Data IO (Python functions)](../../api_docs/python/python_io.md)**:
+ * [`tf_record_iterator`](../../api_docs/python/python_io.md#tf_record_iterator)
+ * [`TFRecordWriter`](../../api_docs/python/python_io.md#TFRecordWriter)
-* **[Neural Network](nn.md)**:
- * [`avg_pool`](nn.md#avg_pool)
- * [`bias_add`](nn.md#bias_add)
- * [`compute_accidental_hits`](nn.md#compute_accidental_hits)
- * [`conv2d`](nn.md#conv2d)
- * [`depthwise_conv2d`](nn.md#depthwise_conv2d)
- * [`dropout`](nn.md#dropout)
- * [`embedding_lookup`](nn.md#embedding_lookup)
- * [`fixed_unigram_candidate_sampler`](nn.md#fixed_unigram_candidate_sampler)
- * [`in_top_k`](nn.md#in_top_k)
- * [`l2_loss`](nn.md#l2_loss)
- * [`l2_normalize`](nn.md#l2_normalize)
- * [`learned_unigram_candidate_sampler`](nn.md#learned_unigram_candidate_sampler)
- * [`local_response_normalization`](nn.md#local_response_normalization)
- * [`log_uniform_candidate_sampler`](nn.md#log_uniform_candidate_sampler)
- * [`max_pool`](nn.md#max_pool)
- * [`max_pool_with_argmax`](nn.md#max_pool_with_argmax)
- * [`moments`](nn.md#moments)
- * [`nce_loss`](nn.md#nce_loss)
- * [`relu`](nn.md#relu)
- * [`relu6`](nn.md#relu6)
- * [`sampled_softmax_loss`](nn.md#sampled_softmax_loss)
- * [`separable_conv2d`](nn.md#separable_conv2d)
- * [`sigmoid`](nn.md#sigmoid)
- * [`sigmoid_cross_entropy_with_logits`](nn.md#sigmoid_cross_entropy_with_logits)
- * [`softmax`](nn.md#softmax)
- * [`softmax_cross_entropy_with_logits`](nn.md#softmax_cross_entropy_with_logits)
- * [`softplus`](nn.md#softplus)
- * [`tanh`](nn.md#tanh)
- * [`top_k`](nn.md#top_k)
- * [`uniform_candidate_sampler`](nn.md#uniform_candidate_sampler)
+* **[Neural Network](../../api_docs/python/nn.md)**:
+ * [`avg_pool`](../../api_docs/python/nn.md#avg_pool)
+ * [`bias_add`](../../api_docs/python/nn.md#bias_add)
+ * [`compute_accidental_hits`](../../api_docs/python/nn.md#compute_accidental_hits)
+ * [`conv2d`](../../api_docs/python/nn.md#conv2d)
+ * [`depthwise_conv2d`](../../api_docs/python/nn.md#depthwise_conv2d)
+ * [`dropout`](../../api_docs/python/nn.md#dropout)
+ * [`embedding_lookup`](../../api_docs/python/nn.md#embedding_lookup)
+ * [`fixed_unigram_candidate_sampler`](../../api_docs/python/nn.md#fixed_unigram_candidate_sampler)
+ * [`in_top_k`](../../api_docs/python/nn.md#in_top_k)
+ * [`l2_loss`](../../api_docs/python/nn.md#l2_loss)
+ * [`l2_normalize`](../../api_docs/python/nn.md#l2_normalize)
+ * [`learned_unigram_candidate_sampler`](../../api_docs/python/nn.md#learned_unigram_candidate_sampler)
+ * [`local_response_normalization`](../../api_docs/python/nn.md#local_response_normalization)
+ * [`log_uniform_candidate_sampler`](../../api_docs/python/nn.md#log_uniform_candidate_sampler)
+ * [`max_pool`](../../api_docs/python/nn.md#max_pool)
+ * [`max_pool_with_argmax`](../../api_docs/python/nn.md#max_pool_with_argmax)
+ * [`moments`](../../api_docs/python/nn.md#moments)
+ * [`nce_loss`](../../api_docs/python/nn.md#nce_loss)
+ * [`relu`](../../api_docs/python/nn.md#relu)
+ * [`relu6`](../../api_docs/python/nn.md#relu6)
+ * [`sampled_softmax_loss`](../../api_docs/python/nn.md#sampled_softmax_loss)
+ * [`separable_conv2d`](../../api_docs/python/nn.md#separable_conv2d)
+ * [`sigmoid`](../../api_docs/python/nn.md#sigmoid)
+ * [`sigmoid_cross_entropy_with_logits`](../../api_docs/python/nn.md#sigmoid_cross_entropy_with_logits)
+ * [`softmax`](../../api_docs/python/nn.md#softmax)
+ * [`softmax_cross_entropy_with_logits`](../../api_docs/python/nn.md#softmax_cross_entropy_with_logits)
+ * [`softplus`](../../api_docs/python/nn.md#softplus)
+ * [`tanh`](../../api_docs/python/nn.md#tanh)
+ * [`top_k`](../../api_docs/python/nn.md#top_k)
+ * [`uniform_candidate_sampler`](../../api_docs/python/nn.md#uniform_candidate_sampler)
-* **[Running Graphs](client.md)**:
- * [`AbortedError`](client.md#AbortedError)
- * [`AlreadyExistsError`](client.md#AlreadyExistsError)
- * [`CancelledError`](client.md#CancelledError)
- * [`DataLossError`](client.md#DataLossError)
- * [`DeadlineExceededError`](client.md#DeadlineExceededError)
- * [`FailedPreconditionError`](client.md#FailedPreconditionError)
- * [`get_default_session`](client.md#get_default_session)
- * [`InteractiveSession`](client.md#InteractiveSession)
- * [`InternalError`](client.md#InternalError)
- * [`InvalidArgumentError`](client.md#InvalidArgumentError)
- * [`NotFoundError`](client.md#NotFoundError)
- * [`OpError`](client.md#OpError)
- * [`OutOfRangeError`](client.md#OutOfRangeError)
- * [`PermissionDeniedError`](client.md#PermissionDeniedError)
- * [`ResourceExhaustedError`](client.md#ResourceExhaustedError)
- * [`Session`](client.md#Session)
- * [`UnauthenticatedError`](client.md#UnauthenticatedError)
- * [`UnavailableError`](client.md#UnavailableError)
- * [`UnimplementedError`](client.md#UnimplementedError)
- * [`UnknownError`](client.md#UnknownError)
+* **[Running Graphs](../../api_docs/python/client.md)**:
+ * [`AbortedError`](../../api_docs/python/client.md#AbortedError)
+ * [`AlreadyExistsError`](../../api_docs/python/client.md#AlreadyExistsError)
+ * [`CancelledError`](../../api_docs/python/client.md#CancelledError)
+ * [`DataLossError`](../../api_docs/python/client.md#DataLossError)
+ * [`DeadlineExceededError`](../../api_docs/python/client.md#DeadlineExceededError)
+ * [`FailedPreconditionError`](../../api_docs/python/client.md#FailedPreconditionError)
+ * [`get_default_session`](../../api_docs/python/client.md#get_default_session)
+ * [`InteractiveSession`](../../api_docs/python/client.md#InteractiveSession)
+ * [`InternalError`](../../api_docs/python/client.md#InternalError)
+ * [`InvalidArgumentError`](../../api_docs/python/client.md#InvalidArgumentError)
+ * [`NotFoundError`](../../api_docs/python/client.md#NotFoundError)
+ * [`OpError`](../../api_docs/python/client.md#OpError)
+ * [`OutOfRangeError`](../../api_docs/python/client.md#OutOfRangeError)
+ * [`PermissionDeniedError`](../../api_docs/python/client.md#PermissionDeniedError)
+ * [`ResourceExhaustedError`](../../api_docs/python/client.md#ResourceExhaustedError)
+ * [`Session`](../../api_docs/python/client.md#Session)
+ * [`UnauthenticatedError`](../../api_docs/python/client.md#UnauthenticatedError)
+ * [`UnavailableError`](../../api_docs/python/client.md#UnavailableError)
+ * [`UnimplementedError`](../../api_docs/python/client.md#UnimplementedError)
+ * [`UnknownError`](../../api_docs/python/client.md#UnknownError)
-* **[Training](train.md)**:
- * [`AdagradOptimizer`](train.md#AdagradOptimizer)
- * [`AdamOptimizer`](train.md#AdamOptimizer)
- * [`add_queue_runner`](train.md#add_queue_runner)
- * [`AggregationMethod`](train.md#AggregationMethod)
- * [`clip_by_average_norm`](train.md#clip_by_average_norm)
- * [`clip_by_global_norm`](train.md#clip_by_global_norm)
- * [`clip_by_norm`](train.md#clip_by_norm)
- * [`clip_by_value`](train.md#clip_by_value)
- * [`Coordinator`](train.md#Coordinator)
- * [`exponential_decay`](train.md#exponential_decay)
- * [`ExponentialMovingAverage`](train.md#ExponentialMovingAverage)
- * [`FtrlOptimizer`](train.md#FtrlOptimizer)
- * [`global_norm`](train.md#global_norm)
- * [`global_step`](train.md#global_step)
- * [`GradientDescentOptimizer`](train.md#GradientDescentOptimizer)
- * [`gradients`](train.md#gradients)
- * [`histogram_summary`](train.md#histogram_summary)
- * [`image_summary`](train.md#image_summary)
- * [`merge_all_summaries`](train.md#merge_all_summaries)
- * [`merge_summary`](train.md#merge_summary)
- * [`MomentumOptimizer`](train.md#MomentumOptimizer)
- * [`Optimizer`](train.md#Optimizer)
- * [`QueueRunner`](train.md#QueueRunner)
- * [`RMSPropOptimizer`](train.md#RMSPropOptimizer)
- * [`scalar_summary`](train.md#scalar_summary)
- * [`start_queue_runners`](train.md#start_queue_runners)
- * [`stop_gradient`](train.md#stop_gradient)
- * [`summary_iterator`](train.md#summary_iterator)
- * [`SummaryWriter`](train.md#SummaryWriter)
- * [`write_graph`](train.md#write_graph)
- * [`zero_fraction`](train.md#zero_fraction)
+* **[Training](../../api_docs/python/train.md)**:
+ * [`AdagradOptimizer`](../../api_docs/python/train.md#AdagradOptimizer)
+ * [`AdamOptimizer`](../../api_docs/python/train.md#AdamOptimizer)
+ * [`add_queue_runner`](../../api_docs/python/train.md#add_queue_runner)
+ * [`AggregationMethod`](../../api_docs/python/train.md#AggregationMethod)
+ * [`clip_by_average_norm`](../../api_docs/python/train.md#clip_by_average_norm)
+ * [`clip_by_global_norm`](../../api_docs/python/train.md#clip_by_global_norm)
+ * [`clip_by_norm`](../../api_docs/python/train.md#clip_by_norm)
+ * [`clip_by_value`](../../api_docs/python/train.md#clip_by_value)
+ * [`Coordinator`](../../api_docs/python/train.md#Coordinator)
+ * [`exponential_decay`](../../api_docs/python/train.md#exponential_decay)
+ * [`ExponentialMovingAverage`](../../api_docs/python/train.md#ExponentialMovingAverage)
+ * [`FtrlOptimizer`](../../api_docs/python/train.md#FtrlOptimizer)
+ * [`global_norm`](../../api_docs/python/train.md#global_norm)
+ * [`global_step`](../../api_docs/python/train.md#global_step)
+ * [`GradientDescentOptimizer`](../../api_docs/python/train.md#GradientDescentOptimizer)
+ * [`gradients`](../../api_docs/python/train.md#gradients)
+ * [`histogram_summary`](../../api_docs/python/train.md#histogram_summary)
+ * [`image_summary`](../../api_docs/python/train.md#image_summary)
+ * [`merge_all_summaries`](../../api_docs/python/train.md#merge_all_summaries)
+ * [`merge_summary`](../../api_docs/python/train.md#merge_summary)
+ * [`MomentumOptimizer`](../../api_docs/python/train.md#MomentumOptimizer)
+ * [`Optimizer`](../../api_docs/python/train.md#Optimizer)
+ * [`QueueRunner`](../../api_docs/python/train.md#QueueRunner)
+ * [`RMSPropOptimizer`](../../api_docs/python/train.md#RMSPropOptimizer)
+ * [`scalar_summary`](../../api_docs/python/train.md#scalar_summary)
+ * [`start_queue_runners`](../../api_docs/python/train.md#start_queue_runners)
+ * [`stop_gradient`](../../api_docs/python/train.md#stop_gradient)
+ * [`summary_iterator`](../../api_docs/python/train.md#summary_iterator)
+ * [`SummaryWriter`](../../api_docs/python/train.md#SummaryWriter)
+ * [`write_graph`](../../api_docs/python/train.md#write_graph)
+ * [`zero_fraction`](../../api_docs/python/train.md#zero_fraction)
## Contents
@@ -54,7 +54,7 @@ uses multiple GPUs.
#### What are the different types of tensors that are available?
TensorFlow supports a variety of different data types and tensor shapes. See the
-[ranks, shapes, and types reference](dims_types.md) for more details.
+[ranks, shapes, and types reference](../resources/dims_types.md) for more details.
## Running a TensorFlow computation
diff --git a/tensorflow/g3doc/resources/index.md b/tensorflow/g3doc/resources/index.md
index 455fb148fde..415c440d505 100644
--- a/tensorflow/g3doc/resources/index.md
+++ b/tensorflow/g3doc/resources/index.md
@@ -6,13 +6,13 @@
Additional details about the TensorFlow programming model and the underlying
implementation can be found in out white paper:
-* [TensorFlow: Large-scale machine learning on heterogeneous systems](../extras/tensorflow-whitepaper2015.pdf)
+* [TensorFlow: Large-scale machine learning on heterogeneous systems](http://tensorflow.org/tensorflow-whitepaper2015.pdf)
### Citation
If you use TensorFlow in your research and would like to cite the TensorFlow
system, we suggest you cite the paper above.
-You can use this [BibTeX entry](bib.md). As the project progresses, we
+You can use this [BibTeX entry](../resources/bib.md). As the project progresses, we
may update the suggested citation with new papers.
diff --git a/tensorflow/g3doc/tutorials/deep_cnn/index.md b/tensorflow/g3doc/tutorials/deep_cnn/index.md
index 40d289eeef5..44ffe879b8f 100644
--- a/tensorflow/g3doc/tutorials/deep_cnn/index.md
+++ b/tensorflow/g3doc/tutorials/deep_cnn/index.md
@@ -105,7 +105,7 @@ adds operations that perform inference, i.e. classification, on supplied images.
add operations that compute the loss,
gradients, variable updates and visualization summaries.
-### Model Inputs
+### Model Inputs
The input part of the model is built by the functions `inputs()` and
`distorted_inputs()` which read images from the CIFAR-10 binary data files.
@@ -143,7 +143,7 @@ processing time. To prevent these operations from slowing down training, we run
them inside 16 separate threads which continuously fill a TensorFlow
[queue](../../api_docs/python/io_ops.md#shuffle_batch).
-### Model Prediction
+### Model Prediction
The prediction part of the model is constructed by the `inference()` function
which adds operations to compute the *logits* of the predictions. That part of
@@ -181,7 +181,7 @@ the CIFAR-10 model specified in
layers are locally connected and not fully connected. Try editing the
architecture to exactly replicate that fully connected model.
-### Model Training
+### Model Training
The usual method for training a network to perform N-way classification is
[multinomial logistic regression](https://en.wikipedia.org/wiki/Multinomial_logistic_regression),
@@ -302,7 +302,7 @@ values. See how the scripts use
[ExponentialMovingAverage](../../api_docs/python/train.md#ExponentialMovingAverage)
for this purpose.
-## Evaluating a Model
+## Evaluating a Model
Let us now evaluate how well the trained model performs on a hold-out data set.
the model is evaluated by the script `cifar10_eval.py`. It constructs the model
diff --git a/tensorflow/g3doc/tutorials/index.md b/tensorflow/g3doc/tutorials/index.md
index 4ee9ad04972..65d9281d6ac 100644
--- a/tensorflow/g3doc/tutorials/index.md
+++ b/tensorflow/g3doc/tutorials/index.md
@@ -7,7 +7,7 @@ If you're new to machine learning, we recommend starting here. You'll learn
about a classic problem, handwritten digit classification (MNIST), and get a
gentle introduction to multiclass classification.
-[View Tutorial](mnist/beginners/index.md)
+[View Tutorial](../tutorials/mnist/beginners/index.md)
## Deep MNIST for Experts
@@ -16,7 +16,7 @@ If you're already familiar with other deep learning software packages, and are
already familiar with MNIST, this tutorial with give you a very brief primer on
TensorFlow.
-[View Tutorial](mnist/pros/index.md)
+[View Tutorial](../tutorials/mnist/pros/index.md)
## TensorFlow Mechanics 101
@@ -25,7 +25,7 @@ This is a technical tutorial, where we walk you through the details of using
TensorFlow infrastructure to train models at scale. We use again MNIST as the
example.
-[View Tutorial](mnist/tf/index.md)
+[View Tutorial](../tutorials/mnist/tf/index.md)
## Convolutional Neural Networks
@@ -35,7 +35,7 @@ Convolutional neural nets are particularly tailored to images, since they
exploit translation invariance to yield more compact and effective
representations of visual content.
-[View Tutorial](deep_cnn/index.md)
+[View Tutorial](../tutorials/deep_cnn/index.md)
## Vector Representations of Words
@@ -46,7 +46,7 @@ method for learning embeddings. It also covers the high-level details behind
noise-contrastive training methods (the biggest recent advance in training
embeddings).
-[View Tutorial](word2vec/index.md)
+[View Tutorial](../tutorials/word2vec/index.md)
## Recurrent Neural Networks
@@ -54,7 +54,7 @@ embeddings).
An introduction to RNNs, wherein we train an LSTM network to predict the next
word in an English sentence. (A task sometimes called language modeling.)
-[View Tutorial](recurrent/index.md)
+[View Tutorial](../tutorials/recurrent/index.md)
## Sequence-to-Sequence Models
@@ -63,7 +63,7 @@ A follow on to the RNN tutorial, where we assemble a sequence-to-sequence model
for machine translation. You will learn to build your own English-to-French
translator, entirely machine learned, end-to-end.
-[View Tutorial](seq2seq/index.md)
+[View Tutorial](../tutorials/seq2seq/index.md)
## Mandelbrot Set
@@ -71,7 +71,7 @@ translator, entirely machine learned, end-to-end.
TensorFlow can be used for computation that has nothing to do with machine
learning. Here's a naive implementation of Mandelbrot set visualization.
-[View Tutorial](mandelbrot/index.md)
+[View Tutorial](../tutorials/mandelbrot/index.md)
## Partial Differential Equations
@@ -79,7 +79,7 @@ learning. Here's a naive implementation of Mandelbrot set visualization.
As another example of non-machine learning computation, we offer an example of
a naive PDE simulation of raindrops landing on a pond.
-[View Tutorial](pdes/index.md)
+[View Tutorial](../tutorials/pdes/index.md)
## MNIST Data Download
@@ -87,7 +87,7 @@ a naive PDE simulation of raindrops landing on a pond.
Details about downloading the MNIST handwritten digits data set. Exciting
stuff.
-[View Tutorial](mnist/download/index.md)
+[View Tutorial](../tutorials/mnist/download/index.md)
## Visual Object Recognition
diff --git a/tensorflow/g3doc/tutorials/mnist/beginners/index.md b/tensorflow/g3doc/tutorials/mnist/beginners/index.md
index 40de38438b5..bcf3460c7aa 100644
--- a/tensorflow/g3doc/tutorials/mnist/beginners/index.md
+++ b/tensorflow/g3doc/tutorials/mnist/beginners/index.md
@@ -3,7 +3,7 @@
*This tutorial is intended for readers who are new to both machine learning and
TensorFlow. If you already
know what MNIST is, and what softmax (multinomial logistic) regression is,
-you might prefer this [faster paced tutorial](../pros/index.md).*
+you might prefer this [faster paced tutorial](../../../tutorials/mnist/pros/index.md).*
When one learns how to program, there's a tradition that the first thing you do
is print "Hello World." Just like programming has Hello World, machine learning
@@ -417,6 +417,6 @@ a look at this
[list of results](http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html).)
What matters is that we learned from this model. Still, if you're feeling a bit
-down about these results, check out [the next tutorial](../../index.md) where we
+down about these results, check out [the next tutorial](../../../tutorials/index.md) where we
do a lot better, and learn how to build more sophisticated models using
TensorFlow!
diff --git a/tensorflow/g3doc/tutorials/mnist/pros/index.md b/tensorflow/g3doc/tutorials/mnist/pros/index.md
index c6ef4ce9562..a83d3eabd52 100644
--- a/tensorflow/g3doc/tutorials/mnist/pros/index.md
+++ b/tensorflow/g3doc/tutorials/mnist/pros/index.md
@@ -9,7 +9,7 @@ while constructing a deep convolutional MNIST classifier.
*This introduction assumes familiarity with neural networks and the MNIST
dataset. If you don't have
a background with them, check out the
-[introduction for beginners](../beginners/index.md).*
+[introduction for beginners](../../../tutorials/mnist/beginners/index.md).*
## Setup
diff --git a/tensorflow/g3doc/tutorials/mnist/tf/index.md b/tensorflow/g3doc/tutorials/mnist/tf/index.md
index 7323a49557c..124fb8c0c28 100644
--- a/tensorflow/g3doc/tutorials/mnist/tf/index.md
+++ b/tensorflow/g3doc/tutorials/mnist/tf/index.md
@@ -56,7 +56,7 @@ Dataset | Purpose
`data_sets.validation` | 5000 images and labels, for iterative validation of training accuracy.
`data_sets.test` | 10000 images and labels, for final testing of trained accuracy.
-For more information about the data, please read the [`Download`](../download/index.md)
+For more information about the data, please read the [`Download`](../../../tutorials/mnist/download/index.md)
tutorial.
### Inputs and Placeholders
diff --git a/tensorflow/g3doc/tutorials/recurrent/index.md b/tensorflow/g3doc/tutorials/recurrent/index.md
index c2ae1afb703..d8dccdcc1b6 100644
--- a/tensorflow/g3doc/tutorials/recurrent/index.md
+++ b/tensorflow/g3doc/tutorials/recurrent/index.md
@@ -117,7 +117,7 @@ for current_batch_of_words in words_in_dataset:
### Inputs
The word IDs will be embedded into a dense representation (see the
-[Vectors Representations Tutorial](../word2vec/index.md)) before feeding to
+[Vectors Representations Tutorial](../../tutorials/word2vec/index.md)) before feeding to
the LSTM. This allows the model to efficiently represent the knowledge about
particular words. It is also easy to write:
diff --git a/tensorflow/g3doc/tutorials/seq2seq/index.md b/tensorflow/g3doc/tutorials/seq2seq/index.md
index ee9808a5ddd..ef23233d419 100644
--- a/tensorflow/g3doc/tutorials/seq2seq/index.md
+++ b/tensorflow/g3doc/tutorials/seq2seq/index.md
@@ -1,7 +1,7 @@
# Sequence-to-Sequence Models
Recurrent neural networks can learn to model language, as already discussed
-in the [RNN Tutorial](../recurrent/index.md)
+in the [RNN Tutorial](../../tutorials/recurrent/index.md)
(if you did not read it, please go through it before proceeding with this one).
This raises an interesting question: could we condition the generated words on
some input and generate a meaningful response? For example, could we train
@@ -45,7 +45,7 @@ This basic architecture is depicted below.
Each box in the picture above represents a cell of the RNN, most commonly
-a GRU cell or an LSTM cell (see the [RNN Tutorial](../recurrent/index.md)
+a GRU cell or an LSTM cell (see the [RNN Tutorial](../../tutorials/recurrent/index.md)
for an explanation of those). Encoder and decoder can share weights or,
as is more common, use a different set of parameters. Mutli-layer cells
have been successfully used in sequence-to-sequence models too, e.g. for
@@ -86,7 +86,7 @@ that determines which cell will be used inside the model. You can use
an existing cell, such as `GRUCell` or `LSTMCell`, or you can write your own.
Moreover, `rnn_cell` provides wrappers to construct multi-layer cells,
add dropout to cell inputs or outputs, or to do other transformations,
-see the [RNN Tutorial](../recurrent/index.md) for examples.
+see the [RNN Tutorial](../../tutorials/recurrent/index.md) for examples.
The call to `basic_rnn_seq2seq` returns two arguments: `outputs` and `states`.
Both of them are lists of tensors of the same length as `decoder_inputs`.
@@ -112,7 +112,7 @@ outputs, states = embedding_rnn_seq2seq(
In the `embedding_rnn_seq2seq` model, all inputs (both `encoder_inputs` and
`decoder_inputs`) are integer-tensors that represent discrete values.
They will be embedded into a dense representation (see the
-[Vectors Representations Tutorial](../word2vec/index.md) for more details
+[Vectors Representations Tutorial](../../tutorials/word2vec/index.md) for more details
on embeddings), but to construct these embeddings we need to specify
the maximum number of discrete symbols that will appear: `num_encoder_symbols`
on the encoder side, and `num_decoder_symbols` on the decoder side.
diff --git a/tensorflow/python/framework/docs.py b/tensorflow/python/framework/docs.py
index 21104bff635..78d326f2dc3 100644
--- a/tensorflow/python/framework/docs.py
+++ b/tensorflow/python/framework/docs.py
@@ -66,10 +66,13 @@ class Index(Document):
for filename, library in self._filename_to_library_map:
sorted_names = sorted(library.mentioned, key=str.lower)
member_names = [n for n in sorted_names if n in self._members]
- links = ["[`%s`](%s#%s)" % (name, filename, anchor_f(name))
+ # TODO: This is a hack that should be removed as soon as the website code
+ # allows it.
+ full_filename = '../../api_docs/python/' + filename
+ links = ["[`%s`](%s#%s)" % (name, full_filename, anchor_f(name))
for name in member_names]
if links:
- print >>f, "* **[%s](%s)**:" % (library.title, filename)
+ print >>f, "* **[%s](%s)**:" % (library.title, full_filename)
for link in links:
print >>f, " * %s" % link
print >>f, ""