- allow_soft_placement
为了避免出现你指定的设备不存在这种情况, 你可以在创建的 session 里把参数 allow_soft_placement 设置为 True, 这样 tensorFlow 会自动选择一个存在并且支持的设备来运行 operation.
- 在TensorFlow中图像的存储方式是[height, width, channels]
- Keras 安装过程
前提:安装h5py
然后你就可以安装 Keras 本身了。有两种方法安装 Keras:
使用 PyPI 安装 Keras (推荐):
sudo pip install keras
如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:
pip install keras
或者:使用 Github 源码安装 Keras:
首先,使用 git 来克隆 Keras:
git clone https://github.com/keras-team/keras.git
然后,cd 到 Keras 目录并且运行安装命令:
cd keras
sudo python setup.py install
从中可知,若要使用/usr/bin/python的环境,安装的时候需要加sudo?(不确定)
4.指定使用哪块GPU(哪块用xx表示):
一般在代码使用with device('/gpu:xx')
是失败的,原因未知。
直接这样:CUDA_VISIBLE_DEVICES=xx python3
搞定。
嫌麻烦的话,可以直接在~/.bashrc
下,加一句export CUDA_VISIBLE_DEVICES=xx
,之后记得source ~/.bashrc
-
tensorflow.contrib.slim
slim为2016发布的,更加简洁。 -
padding中SAME与VALID的区别
I'll give an example to make it clearer:
x: input image of shape [2, 3], 1 channel
valid_pad: max pool with 2x2 kernel, stride 2 and VALID padding.
same_pad: max pool with 2x2 kernel, stride 2 and SAME padding (this is the classic way to go)
The output shapes are:
valid_pad: here, no padding so the output shape is [1, 1]
same_pad: here, we pad the image to the shape [2, 4] (with -inf and then apply max pool), so the output shape is [1, 2]
-
查看网络的时候,可以在训练的时候,查看train节点下面的_graph的_collections。其中分为'losses','model_variables','trainable_variables'三个大节点,不过这里只有各个中间参数的shape,没有数据的流转过程,但是能从中间参数大概知道我们数据流转的过程。
-
正常来说,设置的感受野越大,并且感受野出来的特征之间还能相互叠加(例如[28, 28]的图像,设置感受野为[27, 27])这样的效果会比较好的。
所以用小感受野就需要堆很多层。 -
NDHWC
N : 为 batch size(视频样本数,或图片样本数)
D : 为每个样本视频的帧数(深度)
H : 为每个图片(或每帧)的height
W : 为每个图片(或每帧)的width
C : 为每个图片(或每帧)的通道数,一般模型第一层初次输入取决于视频类型,flow就是2,RGB就是3,中间层取决于上一层的输出通道数。 -
如果需要知道checkpoint里面的参数名字和对应的值,example:
from tensorflow.python import pywrap_tensorflow checkpoint_path = '/home/ubuntu/Downloads/resnet_v1_50.ckpt' # Read data from checkpoint file reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path) var_to_shape_map = reader.get_variable_to_shape_map() # Print tensor name and values for key in var_to_shape_map: print('tensor name: ', key) print(reader.get_tensor(key))
-
resize 和 reshape 不一样
resize 可以改变原来图片的总体像素数量,之后填充或者删减。
reshape 只可以把总像素数量进行分解。
- problem like Attempting to use uninitialized value fully_connected/biases
Reason: the position initializer should place after the graph.
网友评论