本周我学习了CNN卷积神经网络识别图片,对卷积有了初步的了解。
大致分为,数据读入,卷积,池化,drop四个阶段,目前都不是很理解,特别是对卷积核,通道数和drop理解的很浅,所以整个过程还是有很多地方想不通,特别是最后一次卷积,好像是把图片一维化,但是突然出现的1024让我有点懵,网上说是1024个神经元最准确,可能是这样吧。
32.w_c3=tf.Variable(w_alpha*tf.random_normal([3,3,64,64])) 33. b_c3=tf.Variable(b_alpha*tf.random_normal([64])) 34. conv3=tf.nn.relu(tf.nn.bias_add(tf.nn.conv2d(conv2,w_c3,strides=[1,1,1,1],padding='SAME'),b_c3)) 35. conv3=tf.nn.max_pool(conv3,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME') 36. conv3=tf.nn.dropout(conv3,keep_prob) 39.w_d=tf.Variable(w_alpha*tf.random_normal([8*20*64,1024])) 40. b_d=tf.Variable(w_alpha*tf.random_normal([1024])) 41. dense=tf.reshape(conv3,[-1,w_d.get_shape().as_list()[0]]) 42. dense=tf.nn.relu(tf.add(tf.matmul(dense,w_d),b_d)) 43. dense=tf.nn.dropout(dense,keep_prob) 44. w_out=tf.Variable(w_alpha*tf.random_normal([1024,MAX_CAPTCHA*CHAR_SET_LEN])) 45. b_out=tf.Variable(b_alpha*tf.random_normal([MAX_CAPTCHA*CHAR_SET_LEN])) 46. out=tf.add(tf.matmul(dense,w_out),b_out) 47. return out