Tensorflow
文章平均质量分 51
silent56_th
大学生一枚,对机器学习、图像处理感兴趣,偶尔也会刷刷leetcode或者hihocoder。希望在这里可以和大家多多交流,互相学习。
展开
-
Keras设定GPU使用内存大小(Tensorflow backend)
纯粹搬运工,接受英语的请看原网址:Keras Tensorflow backend automatically allocates all GPU memory。通过设置Keras的Tensorflow后端的全局变量达到。import osimport tensorflow as tfimport keras.backend.tensorflow_backend as KTFdef get_se翻译 2017-03-03 23:22:44 · 15365 阅读 · 0 评论 -
tensorflow判断两个tensor是否完全相同
来源于解决一个csdn中的问答,问答链接:http://ask.csdn.net/questions/652382#answer_460706笔者想到的方法就是直接把bool类型转换到int处理,之后方法就很多样了(求和、求最小值等等,总归是利用一些全一序列的性质)。下面给一个例子: a = tf.placeholder(tf.int32,[2,]) b = tf.placeholder(tf.i原创 2017-08-26 21:01:41 · 8647 阅读 · 3 评论 -
win10使用tensorboard 0.0.0.0:6006无法访问
使用win10+anaconda+tensorboard(tensorflow1.2.),使用0.0.0.0:6006进行访问,出现无法访问提示。稍微去github的issue里面看见此时(2017.9)该问题还是open的状态,解决方法是使用localhost:6006或者127.0.0.1:6006。win10使用tensorboard还遇到无法显示graph的情况,详情参看: win10使用t原创 2017-09-08 20:32:39 · 8337 阅读 · 0 评论 -
tensorflow GPU显存控制
参考资料:https://www.tensorflow.org/tutorials/using_gpu 文中提到了两个控制方法:设置使用显存的百分比,以及设置逐渐增加使用的GPU显存。 关于第一种方法,可以参考Keras指定使用GPU、Keras设定GPU使用内存大小(Tensorflow backend)。 这里翻译第二种方法,代码如下:config = tf.ConfigProto()c翻译 2017-11-06 22:42:24 · 1961 阅读 · 0 评论 -
tensorflow不同位置使用相同的name_scope
最近笔者想要把网络层写成类,而不是函数,所以需要在各个位置都使用相同的name_scope。然后遇到如果仅仅使用with tf.name_scope会在不同位置上生成不同的name_scope。稍微搜索了一下找到tensorflow中name_scope使用的一些细节,记录在此。主要是转载https://stackoverflow.com/questions/45670224/why-the-tf-原创 2017-10-13 23:37:18 · 2044 阅读 · 0 评论 -
tensorflow执行操作,不返回值
翻译自: https://stackoverflow.com/questions/42796840/update-a-variable-without-return-its-value-in-tensorflow 详见:tensorflow.session.run文档: https://www.tensorflow.org/api_docs/python/tf/Session#run即只执行ten翻译 2018-01-18 23:49:17 · 850 阅读 · 0 评论 -
tensorflow只使用tensor值,不参与反向传播
详见: https://www.tensorflow.org/api_docs/python/tf/stop_gradient 使用stop_gradient函数,其输出值与输入相同,但不会参与反向传播中的梯度计算。原创 2018-01-20 20:29:37 · 4148 阅读 · 3 评论 -
tensorflow根据输入更改tensor shape
涉及随机数以及类RNN的网络构建常常需要根据输入shape,决定中间变量的shape或步长。 tf.shape函数不同于tensor.shape.as_list()函数,后者返回的是常值list,而前者返回的是tensor。使用tf.shape函数可以使得中间变量的tensor形状随输入变化,不需要在构建Graph的时候指定。但对于tf.Variable,因为需要提前分配固定空间,其shape...原创 2018-04-04 22:11:56 · 4791 阅读 · 2 评论 -
Tensorflow使用AUC Metric遇到问题:Attempting to use uninitialized value
翻译自:https://stackoverflow.com/questions/44422508/tensorflow-attempting-to-use-uninitialized-value-auc-auc-auc-false-positives AUC函数内部生成了local variable,用于计算以及update,需要通过类似tf.local_variables_initializ...翻译 2018-05-07 16:19:02 · 2784 阅读 · 0 评论 -
使用GPU训练大神经网络之 显存控制策略与提升
本文是“[PPoPP18] SuperNeurons:Dynamic GPU Memory Management for Training Deep Neural Networks”的论文阅读笔记,论文、talk视频PPT等详见作者主页:https://linnanwang.github.io/ 参考资料: https://linnanwang.github.io/ How to Optim...原创 2018-05-21 21:26:37 · 7368 阅读 · 3 评论 -
tensorflow+multiprocessing实现并行调参
笔者需要得到100组不同的超参数 训练后的测试准确率,其中不同的超参数对应于不同的网络结构,故Graph和Session均不能共享。即笔者需要执行100次 构建Graph-新建Session-Train&Test-Close&Quit 的操作。 而程序本身占用资源不多,于是便想要实现并行,加速调参。需求:输入100组超参数,返回相应超参数对应的测试准确率每组超参数...原创 2018-08-04 23:19:13 · 8831 阅读 · 14 评论 -
Tensorflow全局设置可见GPU编号
笔者需要tensorflow仅运行在一个GPU上(机器本身有多GPU),而且需要依据系统参数动态调节,故无法简单使用CUDA_VISIBLE_DEVICES。 一种方式是全局使用tf.device函数生成的域,但设备号需要在绘制Graph前指定,仍然不够灵活。 查阅文档发现config的GPUOptions中的visible_device_list可以定义GPU编号从visible到virt...原创 2018-07-31 19:58:48 · 4382 阅读 · 3 评论 -
tensorboard查看tensor占用内存及运行时间
总结自:https://www.tensorflow.org/guide/graph_viz#runtime_statisticshttps://blog.csdn.net/fu6543210/article/details/80235720设置sess.run中option为FULL_TRACE,然后将输出的metadata写到writer里即可,样例代码如下:run_options = ...转载 2018-11-10 19:48:51 · 5310 阅读 · 0 评论 -
tensorflow安装所遇问题:libcudnn.so.6:cannot open sharedobject file: No such file or directory
其实问题也不大,但是充分反映了需要仔细阅读错误代码,才能快速准确的解决问题。系统环境:Ubuntu16.04 + GTX1060 目的:配置一下python-tensorflow环境问题复现: 使用设置/软件与更新/附件驱动 安装nvidia-375 使用CUDA-8.0*.run安装CUDA 使用cudnn*.tgz安装cudnn5 PATH里面加入了/usr/local/cuda-8.原创 2017-08-25 23:09:05 · 30165 阅读 · 2 评论 -
win10使用tensorboard遇到无法显示问题
ubuntu遇到一些问题,转到win10,但是发现tensorboard居然不可用,出来的网页啥也没有。搜索了一下,发现一个简单有效的方法,记录在此。以后有时间再去究其原因,找一个优雅的解法。解决方法: 在tensorboard.exe的那个文件目录下放置log文件,然后运行tensorboard。 至于找到tensorboard.exe的方法有很多,我是通过PATH里面根据名称筛选得到,为C:转载 2017-07-18 20:09:31 · 6014 阅读 · 0 评论 -
Keras指定使用GPU
使用CUDA_VISIBLE_DEVICES.CUDA_VISIBLE_DEVICES=1 python train.py转载 2017-03-03 23:26:59 · 15206 阅读 · 0 评论 -
Keras使用tensorflow代码
几乎所有相关代码都是backend里面,tensorflow与theano共同拥有的函数在backend.common里面,这部分代码无论使用任何backend都可以运行。其中tensorflow相关的位于backend.tensorflow_backend。 如果使用tensorflow backend,几乎所有的Keras.tensor都可以使用tensorflow内部的Operator。原创 2017-03-15 20:19:48 · 3453 阅读 · 0 评论 -
远程使用内网服务器的tensorboard和jupyter notebook
基本做法就是通过ssh建立主机和服务器之间的隧道,然后把服务器当地的端口转发到主机。建立SSH隧道关于ssh的应用可以参考ssh -D -L -R 差异。(这篇文章里的host1可以看作客户端,host2看作服务器,host3是中间转接主机3) 主要困难在于服务器位于内网,外网客户端不可见。客户端分两种情况,分别是客户端位于内网和外网。(外网指的是有公网IP,世界任意位置可以通过其IP地址找到该电原创 2017-04-05 23:25:15 · 7732 阅读 · 2 评论 -
在tensorflow中使用keras作为高层接口
最近从keras转战tensorflow,原先的代码又不想重写,幸好keras代码可以在tensorflow中使用。详情请参考将Keras作为tensorflow的精简接口。 简单应用的话,就是把keras当作tf.layers里面的层来用,placeholder等价于Keras.Input,然后基本和keras里面使用model模块的时候构建方式相同。最后的model也可以使用的,但是我就是想要原创 2017-04-24 17:17:10 · 6773 阅读 · 0 评论 -
tensorflow做交叉验证遇到InvalidArgumentError
原代码的逻辑是train函数构造图,并训练。val_train函数只负责切分训练集。跑代码之后遇到InvalidArgumentError: You must feed a value for placeholder tensor '*' with dtype float后来发现是因为每次train函数都是在default_graph上修改,所以两次train的调用,使得sess重复使用了其内部的变原创 2017-04-25 23:29:59 · 19482 阅读 · 7 评论 -
tensorflow重复使用共享变量
在构造CNN以及LSTM等模型的时候,需要重复使用共享权重。但是tensorflow默认是不允许重复使用变量的,会报一些InvalidArgumentError或者Attemping to use uninitialized value等错误。解决方法是使用variable_scope,并且设置该variable_scope的reuse=True。设置方法由两个:with tf.variable_s原创 2017-04-25 23:16:54 · 7708 阅读 · 0 评论 -
Keras以及Tensorflow强制使用CPU
Keras如果是使用Theano后端的话,应该是自动不使用GPU只是用CPU的,启动GPU使用Theano内部命令即可。 对于Tensorflow后端的Keras以及Tensorflow会自动使用可见的GPU,而我需要其必须只运行在CPU上。网上查到三种方法,最后一种方法对我有用,但也对三种都做如下记录:使用tensorflow的 with tf.device('/cpu:0'):函数。简单操作原创 2017-05-22 17:59:31 · 40700 阅读 · 7 评论 -
CS20si课程笔记1:Tensorflow Introduction
虽然一直使用Tensorflow+Keras,但是没有一个关于Tensorflow的整体框架理解,所以趁着暑假刷一下Stanford刚开的关于Tensorflow的课程CS20si。 关于课程的slides, notes以及各种介绍请参照课程官网以及Github Repo。须注明的是课程是一门新课,而且Tensorflow也没有稳定下来的API,所以应该只是当前时刻一个较棒的分享,并不具有太多的权原创 2017-07-10 16:01:42 · 3413 阅读 · 2 评论 -
Tensorflow累加的实现
由于python内部的变量其实都是reference,而Tensorflow实现的时候也没有意义去判断输出是否是同一变量名,从而判定是否要新建一个Tensor用于输出。Tensorflow为了满足所有需求,定义了两个不同的函数:tf.add和tf.assign_add。从名字即可看出区别,累加应该使用tf.assign_add。具体地,笔者需要一个iteration counter类似的变量,即每次原创 2017-07-20 17:12:20 · 5440 阅读 · 1 评论 -
Tensorflow中关于Tensor和Variable的理解
刷课过程中思考到Variable和Tensor之间的区别,尝试发现在如下代码中:a = tf.Variable(tf.ones(1))b = tf.add(a,tf.ones(1))a是Variable,而b是Tensor。发现自己对Variable和Tensor之间的区分了解不多,所以搜索了一下,记录自己的思考,欢迎指教。Variable是可更改的(mutable),而Tensor是不可更改的原创 2017-07-20 20:56:28 · 12530 阅读 · 2 评论 -
Tensorflow可以使用tensor的name索引tensor,用于sess.run
具体参考Tensorflow官网:https://www.tensorflow.org/api_docs/python/tf/Session 了解此信息的来源:https://stackoverflow.com/questions/37849322/how-to-understand-the-term-tensor-in-tensorflow刚刚发现这个功能,一个直接好处就是原先通过函数构建计算图原创 2017-07-20 20:24:03 · 6038 阅读 · 0 评论 -
Tensorflow使用技巧:通过graph.as_graph_def探索函数内部机制
Tensorflow有tf.Graph类,用于存储计算图。而计算图其实就是由节点和有向边组成,每个点包括操作Op、数值value、类型dtype、形状shape等属性。探索诸如tf.Variable()等函数的内部机制的过程中,就需要查看计算图的变化情况,包括新建了哪些节点,输入是什么等等。例如想要探讨tf.constant函数的内部机制,则运行以下代码:import tensorflow as t原创 2017-07-20 18:08:37 · 9279 阅读 · 0 评论 -
tensorflow实现GNN的max aggregator
笔者想要实现GNN中的max aggregator,要求如下:输入:1. 邻接矩阵A∈{0,1}N×NA\in\{0,1\}^{N\times N}A∈{0,1}N×N,2. 各点特征矩阵X∈RN×CX\in R^{N\times C}X∈RN×C输出:每个点的邻居(点iii和点jjj是邻居⇔A[i,j]=1\Leftrightarrow A[i,j]=1⇔A[i,j]=1)特征值的最大值M∈...原创 2018-11-10 20:23:34 · 2009 阅读 · 0 评论