[Descripción]
Cuando aprendemos un lenguaje de programación, a menudo el primer programa es imprimir "Hola mundo", después de la plataforma de aprendizaje de la inteligencia artificial, el applet de "Hello World" es MNIST escrita a mano entrenada digital. MNIST es un conjunto escrito a mano el número de datos, sitio web oficial Yann LeCun - que APOS sitio web . conjunto de datos contiene un total de 60.000 conjuntos de líneas de datos de entrenamiento ( mnist.train
) y 10.000 filas de conjuntos de datos de prueba ( mnist.test
), cada número es el tamaño de 28 * 28 píxeles. Mediante el uso de Tensorflow plataforma de inteligencia artificial, podemos aprender cómo artificial plataforma de aprendizaje de inteligencia para aprender a través de los datos.
[Preparación de datos]
Descargar juegos mnist datos y mnist_10k_sprite.png imágenes, respectivamente, en las carpetas y la carpeta MNIST_data proyector / datos.
[Código]
tensorflow TF AS Importación de Importación tensorflow.examples.tutorials.mnist capturar_datos de tensorflow.contrib.tensorboard.plugins importación de proyector # conjunto de datos Carga = MNIST input_data.read_data_sets ( "MNIST_data /", one_hot = true) # número de carreras max_steps = 1001 número de la foto # IMAGE_NUM = 3,000 archivo # ruta DIR = "E: / Github / TensorFlow / tronco / Test /" # define sesión sess = tf.Session () # cargar la imagen de la incrustación = tf.Variable (tf.stack (mnist. test.images [: IMAGE_NUM]), entrenable = False, nombre = 'incrustación que') # parámetro Resumen variable_summaries DEF (var): con tf.name_scope ( 'Síntesis'): Mean tf.reduce_mean = (var) tf.summary. escalar ( 'media',valor medio aritmético) # tf.name_scope con ( 'STDDEV'): STDDEV = tf.sqrt (tf.reduce_mean (tf.square (var - Mean))) tf.summary.scalar ( 'STDDEV', STDDEV) # desviación estándar tf.summary.scalar ( 'max', tf.reduce_max (var )) # máximo tf.summary.scalar ( 'min', tf.reduce_min ( var)) # mínimo tf.summary.histogram ( 'histograma', var) # histogramas # espacio de nombres con tf.name_scope ( 'iNPUT'): # ninguno en el presente documento denota una dimensión puede ser de cualquier longitud x = tf.placeholder (tf.float32, [ninguno , 784], el nombre = 'x-entrada' ) # etiquetas correctas Y = tf.placeholder (tf.float32, [Ninguno, 10], name = 'INPUT-Y') de imagen # pantalla con tf.name_scope ( 'input_reshape'): image_shaped_input tf.reshape = (X, [-1, 28, 28, 1]) tf.summary.image ( 'entrada', image_shaped_input, 10) con tf.name_scope (' pérdida): #交叉熵代价函数 pérdida = tf.reduce_mean (tf.nn.softmax_cross_entropy_with_logits (etiquetas = y,logits = predicción)) con tf.name_scope ( 'capa'): #创建一个简单神经网络 con tf.name_scope ( 'pesos'): W = tf.Variable (tf.zeros ([784,10]), name = 'W') variable_summaries (W) con tf.name_scope ( 'sesgos'): b = tf.Variable (tf.zeros ([10]), name = 'b') variable_summaries (b) con tf.name_scope ( 'wx_plus_b'): wx_plus_b = tf.matmul (x, W) + b con tf.name_scope ( 'softmax'): predicción = tf.nn.softmax (wx_plus_b) tf.summary.scalar ( 'pérdida', pérdida) con tf.name_scope ( 'tren' ): #使用梯度下降法 train_step = tf.train.GradientDescentOptimizer (0.5) .minimize (pérdida) #初始化变量 sess.run (tf.global_variables_initializer ()) con tf.name_scope ( 'exactitud'): con tf.name_scope ( 'correct_prediction'): # tienda el resultado en una lista de Boole correct_prediction = tf.equal (tf.argmax (y , 1), tf.argmax (predicción, 1)) # argmax posición de retorno, donde el valor máximo entre la cantidad de una hoja de una sola dimensión con tf.name_scope ( 'exactitud'): # exactitud necesaria exactitud = tf.reduce_mean (tf.cast (correct_prediction , tf.float32)) # correct_prediction se convierte en el tipo float32 tf.summary.scalar ( 'precisión', Precisión) # genera archivo de metadatos TF .gfile.DeleteRecursively (+ el DIR 'proyector / proyector / metadata.tsv') con Open (el DIR + 'proyector / proyector / metadata.tsv', 'W') Como f: si tf.gfile.Exists (DIR + 'proyector / proyector / metadata.tsv'): embed.metadata_path = DIR + 'proyector / proyector / metadata.tsv' embed. sprite.image_path = DIR + 'proyector / data / mnist_10k_sprite.png' embed.sprite.single_image_dim.extend ([28,28]) etiquetas = sess.run (tf.argmax (mnist.test.labels [:], 1)) para i en el rango de (image_num): f.write (STR (etiquetas [i]) + '\ n') #合并所有resumen的 fusionó = tf.summary.merge_all () projector_writer = tf.summary.FileWriter ( 'proyector / proyector DIR +, sess.graph) protector = tf.train.Saver () config = projector.ProjectorConfig () embed = config .embeddings.add () embed.tensor_name = embedding.name projector.visualize_embeddings (projector_writer, config) para i en el rango de (max_steps): #每个批次100个样本 batch_xs, batch_ys = mnist.train.next_batch (100) run_options = tf.RunOptions (trace_level = tf.RunOptions.FULL_TRACE) run_metadata = tf.RunMetadata () sess.run (train_step, feed_dict = {x: batch_xs, Y: batch_ys}, opciones = run_options, run_metadata = run_metadata) resumen = sess.run (fusionada, feed_dict = {x: batch_xs, y: batch_ys}, opciones = run_options, run_metadata = run_metadata) projector_writer.add_run_metadata (run_metadata, 'paso% 03d' % i) projector_writer.add_summary (resumen, i) si i% 100 == 0: acc = sess.run (precisión, feed_dict = {x: mnist.test.images, Y: mnist.test.labels}) imprimir ( "Iter" + str (i) + "la prueba de precisión =" + str (acc)) saver.save (sess, DIR + 'proyector / proyector / a_model.ckpt', global_step = max_steps) projector_writer.close () sess.close ()
[Ejecutar]
Ejecutar el código directamente
[] Interfaz de Visual
1, el comando cmd entrada de línea tensorboard --logdir = progector carpeta de la ruta;
2. Abra su navegador a http: // localhost: 6006 de ruta para ver las visualizaciones.
modo de adquisición de la fuente, el número total de la atención pública RaoRao1994, maravillosa vista a la etapa - todos los artículos, usted puede obtener los recursos de enlace de descarga
Obtener más recursos, por favor preste atención al público el número total de RaoRao1994