检测tf是否使用gpu
import numpy as np
import tensorflow as tf
version = tf.__version__
gpu_ok = tf.test.is_gpu_available()
print("tf version:",version,"\nuse GPU",gpu_ok)
卷积网络
conv2D
input:一个四维张量,格式NHWC(这个格式也可以是NCHW)
filter:一个HWNC的4维张量,
特别说明:(filter的N == input的C,表示被卷目标的通道数,filter的C=输出矩阵的C,表示卷积核的个数)
import tensorflow as tf
import numpy as np
FEATURE_MAP = np.random.uniform(-5, 5, size=(8, 7, 7, 512)).astype(np.float16)
WEIGHT = np.random.uniform(-5, 5, size=(3, 3, 512, 3)).astype(np.float16)
y = tf.nn.conv2d(
FEATURE_MAP, filter=WEIGHT, strides=[1,1], padding="SAME", use_cudnn_on_gpu=True,
data_format='NHWC', dilations=[1, 1, 1, 1], name=None, filters=None
)
print(y.shape)
conv3D
3d多了一个深度方向的参数,
input:是一个5维的张量,格式为NDHWC,
卷积核(filter ):一个五维张量,格式固定为DHWNC
特别注意:(卷积核这边N与input里面的C必须是一致的,表示的是被卷目标的通道数,这边的C表示的是卷积核的数量,也是输出目标的通道数),卷积参数里面的D可以理解为是一个视频里面的多张图片
import tensorflow as tf
import numpy as np
input = np.random.uniform(1, 10, [1, 4, 5, 5, 5]).astype(np.float32)
filter = np.random.uniform(1, 10, [2, 3, 3, 5, 7]).astype(np.float32)
y = tf.nn.conv3d(input,filter=filter,padding="SAME",data_format="NDHWC",
strides=[1, 2, 2, 2, 1])
print(y.shape,type(y))