• 94694

    文章

  • 787

    评论

  • 12

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

tensorboard 可视化 projector

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

好麻烦的东西。。。。。。。。

https://www.tensorflow.org/guide/embedding

不错的博客

https://blog.csdn.net/aliceyangxi1987/article/details/71079387

 

如果遇到一个报错,找不到cupti64_90.dll

将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\CUPTI\libx64下的dll改个名字放到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin中


 

 

主要步骤如下,包括生成tsv文件,精灵图文件的创建

tsv文件每行的数字代表一个分类的label

精灵图必须是正方形的。。。。不够的可以补全否则会有问题,多的也没事,也可以只写在一排,但是数目多的话会占内存。。。可以使用不同的背景,但是白色背景在使用labell区分时比较好辨认一点





 

黑色背景以label区分时,只会讲文字改变颜色,没有白色背景明显




在这段代码中没有没有生成图片

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.contrib.tensorboard.plugins import projector

show_num = 6
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

show_images = mnist.train.images[:show_num]
show_labels = mnist.train.labels[:show_num]
embedding = tf.Variable(tf.stack(show_images), trainable=False, name='embedding')
save_dir = "./log/"

sess = tf.Session()
metadata_path = 'metadata.tsv'
with open(save_dir + metadata_path, 'w') as f:
    labels = sess.run(tf.argmax(show_labels, 1))
    for i in labels:
        f.write(str(i) + '\n')

image_path = 'mnist_sprite.png'

projector_writer = tf.summary.FileWriter(save_dir, sess.graph)
saver = tf.train.Saver()
config = projector.ProjectorConfig()
embed = config.embeddings.add()
embed.tensor_name = embedding.name
embed.metadata_path = metadata_path
embed.sprite.image_path = image_path
embed.sprite.single_image_dim.extend([28, 28])
projector.visualize_embeddings(projector_writer, config)

sess.run(tf.global_variables_initializer())
saver.save(sess, save_dir + 'model.ckpt')
projector_writer.close()

文件结果如下,注意配置文件的路径与,创建文件的路径是不一样的


配置文件中不需要再次加上log文件夹地址


 

 

为了方便可视化数据选取平方数比较好一点,这样比较好生成精灵图

白色背景精灵图的生成

from tensorflow.examples.tutorials.mnist import input_data
import cv2 as cv
import numpy as np

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
cnt = 10
imgs = mnist.train.images[:cnt]
labels = mnist.train.labels[:cnt]
print(imgs.shape)
print(np.max(imgs))
row = np.concatenate(list(
    map(lambda item: 255 * (1 - item.reshape((28, 28, 1))), imgs)
), 1)
print(row.shape)
imgs = np.concatenate([row, 255 * np.ones(((cnt - 1) * 28, cnt * 28, 1))], 0)
print(imgs.shape)
cv.imwrite('mnist_sprite.png', imgs)

 

 

简单可视化,只分label,不显示图片,用label代替图片的显示



 

也要注意配置文件的路径,和在程序中写入的路径不一样的


import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.contrib.tensorboard.plugins import projector

LOG_DIR = 'logs'
metadata = 'metadata.tsv'

mnist = input_data.read_data_sets('MNIST_data')
images = tf.Variable(mnist.test.images, name='images')

with open(os.path.join(LOG_DIR, metadata), 'w') as metadata_file:
    for row in mnist.test.labels:
        metadata_file.write('%d\n' % row)

with tf.Session() as sess:
    saver = tf.train.Saver([images])

    sess.run(images.initializer)
    saver.save(sess, os.path.join(LOG_DIR, 'images.ckpt'))

    config = projector.ProjectorConfig()
    # One can add multiple embeddings.
    embedding = config.embeddings.add()
    embedding.tensor_name = images.name
    # Link this tensor to its metadata file (e.g. labels).
    embedding.metadata_path = metadata
    # Saves a config file that TensorBoard will read during startup.
    projector.visualize_embeddings(tf.summary.FileWriter(LOG_DIR), config)

 


 转载至链接:https://my.oschina.net/ahaoboy/blog/1929080


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客