- 深度学习与计算机视觉系列(8)_神经网络训练与注意点
- 深度学习之四大经典CNN技术浅析(熟悉一下经典的CNN以及它们在tensorflow或keras中的预训练模型,在此基础上可以通过迁移学习或者微调来完成一些自己的深度学习任务)
- AlexNet
VGGNet
Google Inception Net
ResNet
- 合并颜色
- 统计不变性: translation invariance,weight sharing (cnn, embeddings, rnn)
- 在脑海中形成卷积核的图像: feature map, patch/kernel, stride, valid padding, same padding,
- BP的推导
- pooling: max的优缺点, LENET-5 (1998), AlexNet (2012); average,
- 1x1: 为什么需要这个
- inception
- 任务 4: 卷积模型设计并训练一个卷积神经网络
- GPU计算怎么做?
- 关键的代码就是这一点(搭建CNN的网络结构,但是具体的运算过程还需要仔细看):
# Input data. tf_train_dataset = tf.placeholder( tf.float32, shape=(batch_size, image_size, image_size, num_channels) #111 训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数layer1_weights = tf.Variable(tf.truncated_normal( [patch_size, patch_size, num_channels, depth], stddev=0.1)) #111 卷积核的高度,卷积核的宽度,图像通道数,depth=16 layer1_biases = tf.Variable(tf.zeros([depth])) layer2_weights = tf.Variable(tf.truncated_normal( [patch_size, patch_size, depth, depth], stddev=0.1)) layer2_biases = tf.Variable(tf.constant(1.0, shape=[depth])) #222 bias都写的是1维的,参见官方文档 layer3_weights = tf.Variable(tf.truncated_normal( [image_size // 4 * image_size // 4 * depth, num_hidden], stddev=0.1)) #222 全连接层前面的连接,stride=2导致高、宽缩小 layer3_biases = tf.Variable(tf.constant(1.0, shape=[num_hidden])) layer4_weights = tf.Variable(tf.truncated_normal( [num_hidden, num_labels], stddev=0.1)) #333 全连接层后面的连接 layer4_biases = tf.Variable(tf.constant(1.0, shape=[num_labels])) # Model. def model(data): conv = tf.nn.conv2d(data, layer1_weights, [1, 2, 2, 1], padding='SAME') #111 注意这四个数字与前面 input data 对应,表示各维度上的stride hidden = tf.nn.relu(conv + layer1_biases) conv = tf.nn.conv2d(hidden, layer2_weights, [1, 2, 2, 1], padding='SAME') hidden = tf.nn.relu(conv + layer2_biases) shape = hidden.get_shape().as_list() #如果在这里print shape[0],运行会得到16,10000,10000,但是run的时候不会有输出,可以看tf底层设计 reshape = tf.reshape(hidden, [shape[0], shape[1] * shape[2] * shape[3]]) #222 shape[1] * shape[2] * shape[3], shape[0]是batch_size hidden = tf.nn.relu(tf.matmul(reshape, layer3_weights) + layer3_biases) return tf.matmul(hidden, layer4_weights) + layer4_biases
本文深入剖析了深度学习领域的四大经典卷积神经网络(CNN)技术:AlexNet、VGGNet、Google Inception Net及ResNet,并介绍了如何在TensorFlow或Keras中使用这些模型的预训练版本进行迁移学习或微调,以实现特定的深度学习任务。
1886

被折叠的 条评论
为什么被折叠?



