手写汉字笔迹识别模型:
第一名用的是googleNet,准确率97.3%
def GoogleLeNetSlim(x, num_classes, keep_prob=0.5):with tf.variable_scope('main'):t = slim.conv2d(x, 64, [3, 3], [1, 1], padding='SAME', activation_fn=relu, normalizer_fn=slim.batch_norm, scope='conv1')t = slim.max_pool2d(t, [2, 2], [2, 2], padding='SAME')t = slim.conv2d(t, 96, [3, 3], [1, 1], padding='SAME', activation_fn=relu, normalizer_fn=slim.batch_norm, scope='conv2')t = slim.conv2d(t, 192, [3, 3], [1, 1], padding='SAME', activation_fn=relu, normalizer_fn=slim.batch_norm, scope='conv3')t = slim.max_pool2d(t, [2, 2], [2, 2], padding='SAME')with tf.variable_scope('block1'):t = block_slim(t, [64, 96, 128, 16, 32, 32], name='block1')       # [?, 16, 16, 256]with tf.variable_scope('block2'):t = block_slim(t, [128, 128, 192, 32, 96, 64], name='block1')     # [?, 16, 16, 480]t = tf.nn.max_pool(t, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')with tf.variable_scope('block3'):t = block_slim(t, [192, 96, 208, 16, 48, 64], name='block1')t = block_slim(t, [160, 112, 224, 24, 64, 64], name='block2')t = block_slim(t, [128, 128, 256, 24, 64, 64], name='block3')t = block_slim(t, [112, 144, 288, 32, 64, 64], name='block4')t = block_slim(t, [256, 160, 320, 32, 128, 128], name='block5')    # [?, 8, 8, 832]t = tf.nn.max_pool(t, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')with tf.variable_scope('block4'):t = block_slim(t, [256, 160, 320, 32, 128, 128], name='block1')t = block_slim(t, [384, 192, 384, 48, 128, 128], name='block2')    # [?, 8, 8, 1024]t = tf.nn.max_pool(t, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')with tf.variable_scope('fc'):t = slim.flatten(t)t = slim.fully_connected(slim.dropout(t, keep_prob), 1024, activation_fn=relu, normalizer_fn=slim.batch_norm, scope='fc1')t = slim.fully_connected(slim.dropout(t, keep_prob), num_classes, activation_fn=None, scope='logits')return t
TODO:实验下,https://github.com/tflearn/tflearn/blob/master/examples/images/googlenet.py还有使用inception v3的!!!
def build_graph_all(top_k,scope=None):keep_prob = tf.placeholder(dtype=tf.float32, shape=[], name='keep_prob')images = tf.placeholder(dtype=tf.float32, shape=[None, image_size, image_size, 1], name='image_batch')labels = tf.placeholder(dtype=tf.int64, shape=[None], name='label_batch')with tf.variable_scope(scope,'Incept_Net',[images]):with slim.arg_scope([slim.conv2d,slim.max_pool2d,slim.avg_pool2d],stride=1,padding='VALID'):net = slim.conv2d(images,32,[3,3],scope='conv2d_1a_3x3')print('tensor 1:' + str(net.get_shape().as_list()))net = slim.conv2d(net,32,[3,3],scope='conv2d_2a_3x3')print('tensor 2:' + str(net.get_shape().as_list()))net = slim.conv2d(net,64,[3,3],padding='SAME',scope='conv2d_2b_3x3')print('tensor 3:' + str(net.get_shape().as_list()))net = slim.max_pool2d(net,[3,3],stride=2,scope='maxpool_3a_3x3')print('tensor 4:' + str(net.get_shape().as_list()))net = slim.conv2d(net,80,[1,1],scope='conv2d_3b_1x1')print('tensor 5:' + str(net.get_shape().as_list()))net = slim.conv2d(net,192,[3,3],scope='conv2d_4a_3x3')print('tensor 6:' + str(net.get_shape().as_list()))net = slim.max_pool2d(net,[3,3],stride=2,scope='maxpool_5a_3x3')print('tensor 7:' + str(net.get_shape().as_list()))with slim.arg_scope([slim.conv2d,slim.max_pool2d,slim.avg_pool2d],stride=1,padding='SAME'):with tf.variable_scope('mixed_5b'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,64,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,48,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,64,[5,5],scope='conv2d_0b_5x5')with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,64,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,96,[3,3],scope='conv2d_0b_3x3')branch_2 = slim.conv2d(branch_2,96,[3,3],scope='conv2d_0c_3x3')with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,32,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 8:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_5c'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,64,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,48,[1,1],scope='conv2d_0b_1x1')branch_1 = slim.conv2d(branch_1,64,[5,5],scope='conv2d_0c_5x5')with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,64,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,96,[3,3],scope='conv2d_0b_3x3')branch_2 = slim.conv2d(branch_2,96,[3,3],scope='conv2d_0c_3x3')with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,64,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 9:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_5d'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,64,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,48,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,64,[5,5],scope='conv2d_0b_5x5')with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,64,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,96,[3,3],scope='conv2d_0b_3x3')branch_2 = slim.conv2d(branch_2,96,[3,3],scope='conv2d_0c_3x3')with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,64,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 10:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_6a'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,384,[3,3],stride=2,padding='VALID',scope='conv2d_1a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,64,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,96,[3,3],scope='conv2d_0b_3x3')branch_1 = slim.conv2d(branch_1,96,[3,3],stride=2,padding='VALID',scope='conv2d_1a_1x1')with tf.variable_scope('branch_2'):branch_2 = slim.max_pool2d(net,[3,3],stride=2,padding='VALID',scope='maxpool_1a_3x3')net = tf.concat([branch_0,branch_1,branch_2],3)print('tensor 11:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_6b'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,128,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,128,[1,7],scope='conv2d_0b_1x7')branch_1 = slim.conv2d(branch_1,192,[7,1],scope='conv2d_0c_7x1')with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,128,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,128,[7,1],scope='conv2d_0b_7x1')branch_2 = slim.conv2d(branch_2,128,[1,7],scope='conv2d_0c_1x7')branch_2 = slim.conv2d(branch_2,128,[7,1],scope='conv2d_0d_7x1')branch_2 = slim.conv2d(branch_2,192,[1,7],scope='conv2d_0e_1x7')with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,192,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 12:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_6c'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,160,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,160,[1,7],scope='conv2d_0b_1x7')branch_1 = slim.conv2d(branch_1,192,[7,1],scope='conv2d_0c_7x1')with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,160,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,160,[7,1],scope='conv2d_0b_7x1')branch_2 = slim.conv2d(branch_2,160,[1,7],scope='conv2d_0c_1x7')branch_2 = slim.conv2d(branch_2,160,[7,1],scope='conv2d_0d_7x1')branch_2 = slim.conv2d(branch_2,192,[1,7],scope='conv2d_0e_1x7')with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,192,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 13:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_6d'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,160,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,160,[1,7],scope='conv2d_0b_1x7')branch_1 = slim.conv2d(branch_1,192,[7,1],scope='conv2d_0c_7x1')with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,160,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,160,[7,1],scope='conv2d_0b_7x1')branch_2 = slim.conv2d(branch_2,160,[1,7],scope='conv2d_0c_1x7')branch_2 = slim.conv2d(branch_2,160,[7,1],scope='conv2d_0d_7x1')branch_2 = slim.conv2d(branch_2,192,[1,7],scope='conv2d_0e_1x7')with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,192,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 14:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_6e'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,192,[1,7],scope='conv2d_0b_1x7')branch_1 = slim.conv2d(branch_1,192,[7,1],scope='conv2d_0c_7x1')with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,192,[7,1],scope='conv2d_0b_7x1')branch_2 = slim.conv2d(branch_2,192,[1,7],scope='conv2d_0c_1x7')branch_2 = slim.conv2d(branch_2,192,[7,1],scope='conv2d_0d_7x1')branch_2 = slim.conv2d(branch_2,192,[1,7],scope='conv2d_0e_1x7')with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,192,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 15:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_7a'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')branch_0 = slim.conv2d(branch_0,320,[3,3],stride=2,padding='VALID',scope='conv2d_1a_3x3')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,192,[1,1],scope='conv2d_0a_1x1')branch_1 = slim.conv2d(branch_1,192,[1,7],scope='conv2d_0b_1x7')branch_1 = slim.conv2d(branch_1,192,[7,1],scope='conv2d_0c_7x1')branch_1 = slim.conv2d(branch_1,192,[3,3],stride=2,padding='VALID',scope='conv2d_1a_3x3')with tf.variable_scope('branch_2'):branch_2 = slim.max_pool2d(net,[3,3],stride=2,padding='VALID',scope='maxpool_1a_3x3')net = tf.concat([branch_0,branch_1,branch_2],3)print('tensor 16:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_7b'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,320,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,384,[1,1],scope='conv2d_0a_1x1')branch_1 = tf.concat([slim.conv2d(branch_1,384,[1,3],scope='conv2d_0b_1x3'),slim.conv2d(branch_1,384,[3,1],scope='conv2d_0b_3x1')],3)with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,448,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,384,[3,3],scope='conv2d_0b_3x3')branch_2 = tf.concat([slim.conv2d(branch_2,384,[1,3],scope='conv2d_0c_1x3'),slim.conv2d(branch_2,384,[3,1],scope='conv2d_0d_3x1')],3)with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,192,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 17:' + str(net.get_shape().as_list()))with tf.variable_scope('mixed_7c'):with tf.variable_scope('branch_0'):branch_0 = slim.conv2d(net,320,[1,1],scope='conv2d_0a_1x1')with tf.variable_scope('branch_1'):branch_1 = slim.conv2d(net,384,[1,1],scope='conv2d_0a_1x1')branch_1 = tf.concat([slim.conv2d(branch_1,384,[1,3],scope='conv2d_0b_1x3'),slim.conv2d(branch_1,384,[3,1],scope='conv2d_0c_3x1')],3)with tf.variable_scope('branch_2'):branch_2 = slim.conv2d(net,448,[1,1],scope='conv2d_0a_1x1')branch_2 = slim.conv2d(branch_2,384,[3,3],scope='conv2d_0b_3x3')branch_2 = tf.concat([slim.conv2d(branch_2,384,[1,3],scope='conv2d_0c_1x3'),slim.conv2d(branch_2,384,[3,1],scope='conv2d_0d_3x1')],3)with tf.variable_scope('branch_3'):branch_3 = slim.avg_pool2d(net,[3,3],scope='avgpool_0a_3x3')branch_3 = slim.conv2d(branch_3,192,[1,1],scope='conv2d_0b_1x1')net = tf.concat([branch_0,branch_1,branch_2,branch_3],3)print('tensor 18:' + str(net.get_shape().as_list()))with slim.arg_scope([slim.conv2d,slim.max_pool2d,slim.avg_pool2d],stride=1,padding='SAME'):with tf.variable_scope('logits'):net = slim.avg_pool2d(net,[3,3],padding='VALID',scope='avgpool_1a_3x3')print('tensor 19:' + str(net.get_shape().as_list()))net = slim.dropout(net,keep_prob=keep_prob,scope='dropout_1b')logits = slim.conv2d(net, char_size,[2,2],padding='VALID',activation_fn=None,normalizer_fn=None,scope='conv2d_1c_2x2')print('logits 1:' + str(logits.get_shape().as_list()))logits = tf.squeeze(logits,[1,2],name='spatialsqueeze')print('logits 2:' + str(logits.get_shape().as_list()))regularization_loss = tf.reduce_sum(tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES))loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=labels))total_loss = loss + regularization_lossprint('get total_loss')accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.argmax(logits, 1), labels), tf.float32))global_step = tf.get_variable("step", [], initializer=tf.constant_initializer(0.0), trainable=False)rate = tf.train.exponential_decay(2e-3, global_step, decay_steps=2000, decay_rate=0.97, staircase=True)update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)with tf.control_dependencies(update_ops):train_op = tf.train.AdamOptimizer(learning_rate=rate).minimize(total_loss, global_step=global_step)probabilities = tf.nn.softmax(logits)tf.summary.scalar('loss', loss)tf.summary.scalar('accuracy', accuracy)merged_summary_op = tf.summary.merge_all()predicted_val_top_k, predicted_index_top_k = tf.nn.top_k(probabilities, k=top_k)accuracy_in_top_k = tf.reduce_mean(tf.cast(tf.nn.in_top_k(probabilities, labels, top_k), tf.float32))return {'images': images,'labels': labels,'keep_prob': keep_prob,'top_k': top_k,'global_step': global_step,'train_op': train_op,'loss': total_loss,'accuracy': accuracy,'accuracy_top_k': accuracy_in_top_k,'merged_summary_op': merged_summary_op,'predicted_distribution': probabilities,'predicted_index_top_k': predicted_index_top_k,'predicted_val_top_k': predicted_val_top_k}用resnet v2的:
resnet_v2.default_image_size = 128def resnet_v2_50(inputs,num_classes=None,is_training=True,global_pool=True,output_stride=None,spatial_squeeze=True,reuse=None,scope='resnet_v2_50'):"""ResNet-50 model of [1]. See resnet_v2() for arg and return description."""blocks = [resnet_v2_block('block1', base_depth=64, num_units=3, stride=2),resnet_v2_block('block2', base_depth=128, num_units=4, stride=2),resnet_v2_block('block3', base_depth=256, num_units=6, stride=2),resnet_v2_block('block4', base_depth=512, num_units=3, stride=1),]return resnet_v2(inputs, blocks, num_classes, is_training=is_training,global_pool=global_pool, output_stride=output_stride,include_root_block=True, spatial_squeeze=spatial_squeeze,reuse=reuse, scope=scope)resnet_v2_50.default_image_size = resnet_v2.default_image_sizedef resnet_v2_101(inputs,num_classes=None,is_training=True,global_pool=True,output_stride=None,spatial_squeeze=True,reuse=None,scope='resnet_v2_101'):"""ResNet-101 model of [1]. See resnet_v2() for arg and return description."""blocks = [resnet_v2_block('block1', base_depth=64, num_units=3, stride=2),resnet_v2_block('block2', base_depth=128, num_units=4, stride=2),resnet_v2_block('block3', base_depth=256, num_units=23, stride=2),resnet_v2_block('block4', base_depth=512, num_units=3, stride=1),]return resnet_v2(inputs, blocks, num_classes, is_training=is_training,global_pool=global_pool, output_stride=output_stride,include_root_block=True, spatial_squeeze=spatial_squeeze,reuse=reuse, scope=scope)def build_graph(top_k, is_training):# with tf.device('/cpu:0'):keep_prob = tf.placeholder(dtype=tf.float32, shape=[], name='keep_prob')images = tf.placeholder(dtype=tf.float32, shape=[None, 128, 128, 1], name='image_batch')labels = tf.placeholder(dtype=tf.int64, shape=[None], name='label_batch')logits, _ = resnet_v2_50(images, num_classes=3755, is_training=is_training, global_pool=True,output_stride=None, spatial_squeeze=True, reuse=None)   -----------------------------

  

转载于:https://www.cnblogs.com/bonelee/p/9100476.html

手写汉字笔迹识别模型汇总相关推荐

  1. CVPR 2019笔迹识别论文:逆鉴别网络+八路Attention

    点击上方"AI搞事情"关注我们 论文链接: http://openaccess.thecvf.com/content_CVPR_2019/papers/Wei_Inverse_Di ...

  2. python模拟手写笔迹_Python实现基于KNN算法的笔迹识别功能详解

    本文实例讲述了Python实现基于KNN算法的笔迹识别功能.分享给大家供大家参考,具体如下: 需要用到: Numpy库 Pandas库 手写识别数据 点击此处本站下载. 数据说明: 数据共有785列, ...

  3. python笔迹识别_关于机器视觉笔迹识别和Arduino控制机器人的设计

    0 引言 伴随着现在日益高性能的计算机硬件和完善的理论技术,机器视觉技术已开始得到广泛的应用.结合机器视觉技术的智能机器人在现今人工智能趋势下扮演一个重要角色,在智能制造推进.智慧城市建设.家居生活质 ...

  4. 看笔迹识国籍?一起来看AI加持下的笔迹识别进化之路

    笔者高中时期,班里有一条完整的"假条产业链".有人负责在外面打印店打印假条,有人负责模仿政教处主任签字,有人负责模仿班主任签字,还有人负责画政教处的印章.几个人功夫了得,每张假条5 ...

  5. 模型汇总-10 Variational AutoEncoder_变分自动编码器原理解析

    在<模型汇总-9>部分,详细讲解了与VAE有关的基础知识,涉及LVM.MAP.EM.MCMC.Variational Inference(VI),可以通过公众号往期内容查看.有了这些知识的 ...

  6. 【论文泛读130】SEOVER:基于句子级情感取向向量的会话情感识别模型

    贴一下汇总贴:论文阅读记录 论文链接:<SEOVER: Sentence-level Emotion Orientation Vector based Conversation Emotion ...

  7. Python+OpenCV实现AI人脸识别身份认证系统(3)—训练人脸识别模型

    目录 案例引入 本节项目 最近有小伙伴们一直在催本项目的进度,好吧,今晚熬夜加班编写,在上一节中,实现了人脸数据的采集,在本节中将对采集的人脸数据进行训练,生成识别模型. 案例引入 首先简要讲解数据集 ...

  8. 使用OpenVINO加速Pytorch表情识别模型

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 关于模型 OpenVINO自带的表情识别模型是Caffe版本的,这 ...

  9. Tensorflow object detection API 搭建物体识别模型

    ----------------------------------------------------先把别人博客教程跑通-------------------------------------- ...

最新文章

  1. eclipse的默认(打开)编辑器的更改
  2. cat/tac/more/less 命令详解
  3. Explore the Dispatcher Console
  4. 如何调用华为云api_postman调用华为云接口添加资源
  5. C# webservice调用方法总结
  6. DDD:一个朋友对领域驱动的小结
  7. pytorch 解压kaggle中的zgz文件
  8. 蒙特卡洛模拟分析市场风险
  9. java相对路径保存文件夹_java项目路径 文件路径 相对路径 整理
  10. 【起航计划ObjC 001】印第安老斑鸠ObjC的幻想 ---- Ubuntu下安装并使用Obj-C
  11. 写在最后——如何做好一个语音助手
  12. 如何获取未安装apk应用的包名、应用名以及版本信息等
  13. java populate_BeanUtils.populate()的用法
  14. 手把手教你在好友不知道的情况下,检查哪个微信好友删了你。
  15. Often Misused: Authentication 一个ip日志你还要我怎样
  16. 最大公约数的几种基本求解方法
  17. idea新建springboot项目后始终无法识别org.codehaus.plexus.component.repository.exception.ComponentLookupException
  18. 早期做的Fireworks闪光字教程,顺便怀念一下
  19. 阿泽CSS踩坑系列(二)-解决安卓端手机横屏后图片比例失调,需要刷新才能恢复正常的问题。(华为手机浏览器)
  20. ThinkPhp框架开发

热门文章

  1. 使用Shell(bash) 来检查 git 本地某个分支是否存在
  2. arcgis js 移除某一个点_GIS Experience (二):ArcGIS实践操作问题集
  3. php blocklog_SQLSERVER中的logblock校验(译)
  4. node mysql 连接池 超时,关于NodeJS中mysql连接池卡死问题
  5. android 代码打开权限,android开发权限询问的示例代码
  6. 全网最细节的sds讲解,从理论到实践!
  7. 【迁移学习(Transfer L)全面指南】Domain-Adversarial Training:基于对抗的迁移学习方法
  8. 【响应式Web前端设计】一文学会使用Bootstrap!
  9. comet OJ 01背包
  10. 查看python安装路径