文章预览
最近在通过《TensorFlow:实战Google深度学习框架》来学习TensorFlow的用法。 读到第6章《图像识别与卷积神经网络》,发现书中关于卷积层(convolutional layer)和池化层(pooling layer)的代码看不懂,这里找了Hands-on Machine Learning with Scikit-Learn and TensorFlow中第13章CNN的代码。 import tensorflow as tf
import numpy as np
from sklearn.datasets import load_sample_images
import matplotlib.pyplot as plt
# Load sample images
dataset = np.array(load_sample_images().images, dtype=np.float32)
batch_size, height, width, channels = dataset.shape
# dataset.shape = (2, 427, 640, 3) —— 2张427*640的图片,图片信息有3层
# 创建一个两层的过滤器
# filters的权重是一个4维矩阵(张量),前两个参数代表过滤器的尺寸(7*7)
# 第三个维度表示当前层的深度,第四个维度表示过滤器的深度
filters = np.zeros(shape=(7, 7, channels, 2), dtype=np.float32)
filters[:, 3, :, 0] =
………………………………