C3D实现ucf101人体行为识别代码知识总结 with tf.name_scope('accuracy'): accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.argmax(logits, 1), tf.argmax(batch_labels, 1)), np.float32)) tf.summary.scalar('accuracy', accuracy) tf.argmax(logits, 1)是按行取出logits矩阵中最大值对应的索引(index)值,最后会生成一个向量 0是按照列取出最大值的索引,若第一个参数为向量,最后的值为一个数值 tf.equal(A,B)是比较两个两个向量对应元素是否相等,相等为1,反之为0,生成一个和向量长度一样的元组,看到资料用的是小括号 tf.cast(data_1,dtype)将data_1(可以为int,bool,float,python列表,python元组【输出转换后的数据,原数据不变】)转换成指定dtype类型 这里强制转化成浮点型 tf.reduce_mean(),求均值 with tf.name_scope(‘loss’): 定义一块名为loss的区域,并在其中工作,只是规定了对象和操作属于哪个区域,但这并不意味着他们的作用域也只限于该区域(with的这种写法很容易让人产生这种误会),不要将其和“全局变量、局部变量”的概念搞混淆,两者完全不是一回事。在name_scope中定义的对象,从被定义的位置开始,直到后来某个地方对该对象重新定义,中间任何地方都可以使用该