Transfer Component Analysis

属于边缘分布自适应方法

本文为TCA代码的调试

TCA计算过程的公式见:

https://blog.csdn.net/lagoon_lala/article/details/120514537

对TCA开源代码的详细阅读分析:

https://blog.csdn.net/lagoon_lala/article/details/120800667

本次尝试跑王晋东在GitHub的开源TCA代码

学习过程中参考:

https://github.com/jindongwang/transferlearning-tutorial

https://zhuanlan.zhihu.com/p/63026435

https://zhuanlan.zhihu.com/p/110594052

https://zhuanlan.zhihu.com/p/26764147

尝试跑TCA代码

使用数据集(Office-Caltech10):

该网站第一组

https://github.com/jindongwang/transferlearning/tree/master/data

使用代码:

https://github.com/jindongwang/transferlearning/tree/cfaf1174dff7390a861cc4abd5ede37dfa1063f5/code/traditional/TCA

激活虚拟环境

(base) C:\Users\Lenovo>activate Liver

进入项目文件夹路径

(Liver) C:\Users\Lenovo>cd /d D:\anacondaProject\TCA

运行py文件:

python TCA.py

报错:

FileNotFoundError: [Errno 2] No such file or directory: 'data_office_caltech_10/amazon.mat'

看了一下, 文件夹里都是图片, 没有.mat形式

参考:

https://blog.csdn.net/zuoriqingkong/article/details/79986785

.mat的是特征文件.

3个对象领域Amazon(在线电商图片)、Webcam(网络摄像头拍摄的低解析度图片)、DSLR(单反相机拍摄的高解析度图片)

注意不要下载原图original images, SURF dataset中有.mat文件, DeCAF dataset用之前需要运行readme中的normr代码. 这里为了快捷就使用SURF了

运行报错:

Xs, Ys, Xt, Yt = src_domain['feas'], src_domain['labels'], tar_domain['feas'], tar_domain['labels']

KeyError: 'labels'

打印src_domain

print('src_domain type:',type(src_domain),'\nsrc_domain:',src_domain)

src_domain type: <class 'dict'>

src_domain: {'__header__': …, 'feas': array([[-0.29043361, …, -0.19295982],

       [-0.29043361, …, -0.19295982],

       ...

       ]), 'label': array([[ 1],…

这里的label键名少了个s, 修改读取行:

Xs, Ys, Xt, Yt = src_domain['feas'], src_domain['label'], tar_domain['feas'], tar_domain['label']

运行成功.

Accuracy of mapped source and target1 data : 0.400

Accuracy of mapped target2 data            : 0.371

这效果不行啊, 换DeCAF版本的数据集试试

这个版本的读入标签为

Xs, Ys, Xt, Yt = src_domain['feas'], src_domain['labels'], tar_domain['feas'], tar_domain['labels']

运行得:

Accuracy of mapped source and target1 data : 0.800

Accuracy of mapped target2 data            : 0.706

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐