top5

package TeacherTopN2

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD

import scala.collection.mutable

object TeacherN05 {
  def main(args: Array[String]): Unit = {


    val conf = new SparkConf().setAppName("Teacher").setMaster("local[*]")

    val sc = new SparkContext(conf)

    val lines = sc.textFile("F:\\spark\\计算每个学科最受欢迎Top2.log")

    val line: RDD[((String, String), Int)] = lines.map(it => {
      val strings = it.split("/")
      val teacher = strings(3)
      val subject = strings(2).split("[.]")(0)

      ((subject, teacher), 1)
    })

    val subDis: Array[String] = line.map(i => i._1._1).distinct().collect()

    val partition: MyTreeSetPartition = new MyTreeSetPartition(subDis)
    //使用reduceByKey进行分区,加聚合
    val rdd1: RDD[((String, String), Int)] = line.reduceByKey(partition, _ + _)

    val value1: RDD[((String, String), Int)] = rdd1.mapPartitions(it => {
      implicit val value = Ordering[Int].on[((String, String), Int)](i => -i._2)
      val tuples = new mutable.TreeSet[((String, String), Int)]()
      //因为mapPartition只有出发Action才执行,用map不行,只会返回空的迭代器,所有用foreach每条遍历出来
      it.foreach(i => {
        tuples += i
        if (tuples.size > 2) {
          tuples -= tuples.last
        }
      })
      tuples.iterator
    })
    println(value1.collect().toBuffer)



  }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PyTorch的top1、top5准确率曲线通常是用来评估图像分类模型的性能。在训练和验证过程,我们可以绘制出top1和top5准确率曲线来监测模型的性能。 具体来说,top1准确率是指模型在所有预测,正确预测的类别与真实类别相同的比例,而top5准确率是指模型在所有预测,正确预测的类别在前5个的比例。 在PyTorch,我们可以使用TensorBoard来绘制top1和top5准确率曲线。通常的做法是,在模型训练过程,记录每个epoch的top1和top5准确率,然后使用TensorBoard绘制曲线。 以下是一个示例代码,展示如何使用TensorBoard绘制top1和top5准确率曲线: ``` from torch.utils.tensorboard import SummaryWriter # 创建TensorBoard写入器 writer = SummaryWriter() # 在训练过程记录top1和top5准确率 for epoch in range(num_epochs): # 训练代码 top1_acc, top5_acc = train(model, train_loader, optimizer, criterion) # 验证代码 val_top1_acc, val_top5_acc = validate(model, val_loader, criterion) # 记录top1和top5准确率 writer.add_scalar('Train/Top1_acc', top1_acc, epoch) writer.add_scalar('Train/Top5_acc', top5_acc, epoch) writer.add_scalar('Validation/Top1_acc', val_top1_acc, epoch) writer.add_scalar('Validation/Top5_acc', val_top5_acc, epoch) # 关闭写入器 writer.close() ``` 运行上述代码后,我们可以在TensorBoard查看top1和top5准确率曲线。在TensorBoard,我们可以选择不同的标签来查看不同的准确率曲线,也可以使用滑动条来缩放和平移曲线。 ### 回答2: PyTorch是一个流行的深度学习框架,它提供了用于训练神经网络的工具和函数。在使用PyTorch训练模型时,我们通常会关注模型的准确率曲线,其包括top1和top5准确率曲线。 top1和top5准确率是对模型预测的两种评估指标。top1准确率表示模型在某个类别上的最高预测概率与实际标签一致的比例,即模型的最准确的预测结果。而top5准确率表示模型在某个类别上,实际标签在其前五个最高概率预测之内的比例,即模型能够包含实际标签的概率预测。 准确率曲线通常横坐标表示训练过程的迭代次数或训练轮数,纵坐标表示对应迭代或训练轮数下的top1或top5准确率。 当我们训练一个神经网络模型时,准确率曲线能够帮助我们了解模型的训练进展和性能。通常在训练过程,随着迭代次数的增加,模型的准确率会逐渐提高。top1和top5准确率曲线能够给出不同精度的预测结果,即能够对模型进行更详细的评估。 通过观察准确率曲线,我们可以选择在某个训练轮数或迭代次数停止训练,从而得到一个准确率较高的模型。 总之,PyTorch的top1和top5准确率曲线是对模型预测结果在不同训练轮数或迭代次数下的评估指标,可以帮助我们了解模型的训练进展和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值