度量学习层特斯拉斯

tf-simple-metric-learning的Python项目详细描述


简单的度量学习via特斯拉斯在

该软件包仅提供了以下几个度量学习损失的指标

  • 弧面
  • 阿达科斯
  • 圆圈

我深受PyTorch Metric Learning的启发。在

安装

$ pip install tf-simple-metric-learning

使用

提供的层通过tf.keras.layers.LayerAPI实现,启用

^{pr2}$

示例笔记本在examples目录中。实现CircleLossCL(Class level label version)EfficientNet的顶层,并对其进行Cars196 dataset的培训

importtensorflowastffromtf_simple_metric_learning.layersimportArcFace,AdaCos,CircleLossCLinputs=tf.keras.layers.Input([*IMAGE_SIZE,3],dtype=tf.uint8)x=tf.cast(inputs,dtype=tf.float32)x=tf.keras.applications.efficientnet.preprocess_input(x)net=tf.keras.applications.EfficientNetB0(include_top=False,weights='imagenet',pooling='avg')embeds=net(x)labels=tf.keras.layers.Input([],dtype=tf.int32)labels_onehot=tf.one_hot(labels,depth=num_classes)# Create metric learning layer# metric_layer = ArcFace(num_classes=num_classes, margin=0.5, scale=64)# metric_layer = AdaCos(num_classes=num_classes)metric_layer=CircleLossCL(num_classes=num_classes,margin=0.25,scale=256)logits=metric_layer([embeds,labels_onehot])model=tf.keras.Model(inputs=[inputs,labels],outputs=logits)model.summary()

请注意,您应该在培训中将标签作为输入输入输入输入到模型中,因为这些层需要标签来转发。在

在评估或预测中,上述模型需要图像和标签,但在这些度量学习层中忽略了标签。我们只需要对目标图像使用虚拟标签(忽略),因为我们无法在评估或预测中访问标签。在

参考文献

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java通过HTTP GET请求将Web浏览器打开到URI   带睡眠线程的java暂停秒表计时器?   java程序在试图分析字符串时冻结   JavaJ2ME:如何从联系人列表导入联系人?   ApachePOIJava将html转换为pdf   基于Tweet长度的java文本过滤   java如何从xml文件中提取数据作为代码的输入   java SonarQube抱怨检查集合中的列表#包含<?扩展整数>   java轻松在所有活动按钮上设置setOnClickListener()   java使用JavaHg设置Mercurial选项   java Webdriver TestNG空指针异常   java使用NamedQueries查询加密列   运行java程序时出现Hibernate异常无限运行   java将ActionListener添加到自定义组件   java Log4J SQL日志TopLink   java使用selenium javascript上传文件错误   Java中静态块的执行   java为什么要使用MavenGPGPlugin用GnuPG签署项目的工件?   java使用截击与AndroidApp通信ESP8266