卷积操作
"""
keras.Conv2D 卷积操作与
tf.nn.Conv2D 卷积操作
"""
import tensorflow as tf
from tensorflow.keras import layers
gpus = tf.config.experimental.list_physical_devices("GPU")
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
print("物理GPU个数:", len(gpus))
x = tf.random.normal([1, 32, 32, 3])
layer = layers.Conv2D(4, kernel_size=5, strides=1, padding="valid")
out = layer(x)
print(out.shape)
layer = layers.Conv2D(4, kernel_size=5, strides=1, padding="same")
out = layer(x)
print(out.shape)
layer = layers.Conv2D(4, kernel_size=5, strides=2, padding="same")
out = layer(x)
print(out.shape)
print(layer.call(x).shape)
"""
权重与偏置 weight bias
"""
print(layer.kernel.shape)
print(layer.bias)
"""
tf.nn.conv2d 更加底层 需要自己管理 权重 w + 偏置b
"""
w = tf.random.normal([5, 5, 3, 4])
b = tf.zeros([4])
print(x.shape)
out = tf.nn.conv2d(x, w, strides=1, padding="VALID")
print(out.shape)
out += b
print(out.shape)
out = tf.nn.conv2d(x, w, strides=2, padding="VALID")
print(out.shape)
