README.md

    任务说明

    使用对比学习对MNIST数据集进行预训练和分类

    要求

    1. 使用Keras构建模型
    2. 自定义DataGenerater生成minibatch的样本图片和标签进行训练
    3. 自定义对比损失函数代码
    4. 预训练结束后使用TSNE可视化处理
    5. 预训练结束后训练MLP层进行分类并告知准确率(accuracy

    任务记录

    2023/03/28

    由于我个人比较熟悉pytorch框架,未接触过Keras框架,因此今天看了一整天的Keras开发文档,自己也跟着开发文档写了一些小例子。

    2023/03/29

    今天去看了对比学习的理论知识,依照理论搭建了一个简单的预训练模型和一个简单MLP模型,其中的一些隐藏层定义语句其实和pytorch框架没有太多差别。让我卡住的挺长时间的是Keras的自定义数据读取函数,文档当中虽然有详细的说明,但是习惯了pytorchtorchvision.transforms读取数据的框架,一时半会没能转换过来思维。

    2023/03/30

    今天看了TSNE可视化的一些相关教程,因为之前使用pytorch的时候可视化基本都托管到了tensorboard上,tensorboard也有类似TSNE的功能,直接调用对应接口就可以实现,今天也是第一次使用scikit-learn里的TSNE库。

    已完成任务:

    • 使用Keras构建预训练模型
    • 自定义DataGenerater函数生成minibatch的样本图片和标签
    • 自定义对比损失函数(使用了交叉熵损失值)
    • 预训练结束后使用TSNE可视化处理(生成的图像存放与./file文件夹中)
    • 预训练结束后训练MLP层进行分类并告知准确率

    存在的问题:

    1. TSNE生成可视化图像速度慢。
    2. 由于个人对无监督学习接触的项目较少,目前的代码也仅是根据[1][2]这两篇文章学到的理论知识加上我在pytorch框架上的经验完成的,其中的很多理论我不是很明确,因此代码的结果我自己也不是很确定是对是错。

    TSNE

    项目简介

    keras对比学习

    发行版本

    当前项目没有发行版本

    贡献者 1

    疯人忠 @Zbreakzhong

    开发语言

    • Python 100.0 %