精华内容
下载资源
问答
  • 无监督数据增强或UDA是一种半监督学习方法,可在各种语言和视觉任务上实现最新的结果。 仅用20个标记的示例,UDA优于以前在25,000个标记的示例上训练的IMDb的最新技术。 模型 带标签的示例数 错误率 混合增值税...
  • UDA读取写狗工具.zip

    2020-05-18 15:52:50
    USB软件加密狗读取与写入,从一个有内容的软件狗复制到一个空狗。支持saftnet系列彩虹狗等。
  • 这个全功能的UDA1334A I2S立体声DAC跳线是任何I2S输出音频接口的完美匹配。这是负担得起,但听起来不错!恩智浦UDA1334A是一个全通用的I2S交易:您可以使用3.3V-5V逻辑电平(稀有性),并可以通过将两个引脚设置为高...
  • 无监督数据增强(UDA)的TensorFlow代码
  • 软件介绍: 第一步:安装加密狗驱动SoftDogInstdrv.exe。第二步:软件狗UDA硬复制,可读写加密狗,保存或提取文件,USB加密狗克隆工具软件狗UDA硬复制。
  • uda-源码

    2021-02-13 01:09:34
    uda
  • UDA Hadoop MapReduce 的非结构化数据加速器 (RDMA) UDA 是一种软件插件,可加速 Hadoop 网络并提高执行数据分析密集型应用程序的 Hadoop 集群的扩展性。 一种新颖的数据移动协议将 RDMA 与高效的归并排序算法结合...
  • 彩虹狗UDA硬复制

    2018-08-12 11:27:29
    彩虹狗UDA硬复制...3.4搜索neiwaijm这个大写,从neiwaijm开始复制有字符段到对应的地方就行了 结尾0A01 4.0通用特征0000009900 结尾0601 C搜索0000009900000000000000 80h字节替换 Delphi搜索0000009900 80h...
  • ZTE LTE TDD(V3.30.20.00) UDA功能指导书.docxZTE LTE TDD(V3.30.20.00) UDA功能指导书.docxZTE LTE TDD(V3.30.20.00) UDA功能指导书.docxZTE LTE TDD(V3.30.20.00) UDA功能指导书.docxZTE LTE TDD(V3.30.20.00) UDA...
  • UDA解片文件.rar

    2019-10-21 12:08:01
    加密狗固件,用编程器写入芯片,可以批量生产加密狗,复制所需的程序
  • 我的博客/网络开发作业
  • 此压缩工具对文件的压缩率几乎可以排到世界第一位,它应用了最新的以Context Model Mixing为基础的预测算术...本工具不像其他的压缩工具使用常见的zip,rar等格式,使用独自开发的UDA格式,新版本使用了图形窗口界面
  • uda1341 驱动

    2012-07-10 13:42:17
    基于TQ2440的uda1341音频驱动接口,能实现播放和录音功能
  • UDA复制工具

    2015-12-24 09:11:12
    UDA复制工具,读取/复制加密狗,用于被加密狗的破解
  • matlab代码太乱PyTorch实现具有无监督域自适应的多通道语义分割 这是中的代码。 环境 样品结果 如果您发现此代码(对不起,仍然很混乱)在您的研究中很有用,请考虑引用以下内容: @inproceedings{watanabe2018...
  • UDA_症状-源码

    2021-03-02 05:51:14
    带有BERT的UDA(无监督数据增强) 这是Kakao Brain的Pytorchic BERT 在pytorch中对Google的UDA 重新实现。 模型 UDA官方 这个仓库 UDA(X) 68% 乌达(O) 90% 88.45% (最大序列长度= 128,火车批次大小=...
  • 彩虹软件狗 UDA硬复制工具彩虹软件狗 UDA硬复制工具
  • UDA1380音频解码芯片程序
  • {\text {UDA }}(\theta)\tag{2} θmin​J=x,y∗∈LE​[pθ​(y∗∣x)]+λJUDA ​(θ)(2) 图 1 : U D A 训 练 模 型 架 构 , 其 中 M 表 示 模 型 图1 : UDA训练模型架构,其中M表示模型 图1:UDA训练模型架构,其中...


    17.1 自然语言处理中文本数据增强方法

    有监督数据增强

    所谓数据增强就是在保持标签一致的情况下,通过某种转换方法扩充出类似于真实数据的训练数据。简单而言就是,有一个样本 x x x,通过转换函数

    展开全文
  • UDA1355H datasheet

    2016-01-20 16:45:37
    UDA1355H Stereo audio codec with SPDIF interface
  • uda_gan-源码

    2021-03-16 01:11:03
    uda_gan 使用GAN进行无监督域适配。 @斯坦福CS236g 先决条件 的Python 3.5 火炬 用法 克隆存储库 https :/ / github . com / jingxiaoliu / uda_gan . git cd uda_gan 获取数据集 发送电子邮件至 运行实施 打开...
  • CPU通过L3接口控制uda1341芯片,分别是: L3DATA: 数据线 L3MODE: 模式控制线,置0时,地址模式;置1时,数据模式 L3CLOCK: 时钟线 地址模式: data[7:2]:表示的是设备地址,UDA1341TS芯片的设备地址是 000101 data...

    本文是基于mini2440开发板Linux版本号是linux-2.6.32.2的学习笔记

    一. uda1341的硬件信息

    CPU通过L3接口控制uda1341芯片,分别是:
    L3DATA: 数据线
    L3MODE: 模式控制线,置0时,地址模式;置1时,数据模式
    L3CLOCK: 时钟线

    • 地址模式:
      data[7:2]:表示的是设备地址,UDA1341TS芯片的设备地址是 000101
      data[1:0]:表示的是传输类型
      在这里插入图片描述
      00:地址寄存器,音量,低音增强,高音,峰值检测
      扩展寄存器地址,AGC控制,MIC灵敏度控制等
      01:读回峰值信息
      10: STATUS状态信息,复位、时钟、数据输入格式(数据位宽)等

    STATUS控制,地址是:00010110 = 0x16
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    data0控制:地址是:00010100 = 0x14
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    data1控制,地址是:00010101 = 0x15
    在这里插入图片描述

    三. uda1341的写控制函数

    写控制函数定义如下:

    static int uda134x_write(struct snd_soc_codec *codec, unsigned int reg, unsigned int value)
    
    • 将value保存在cache[reg]中。
    uda134x_write_reg_cache(codec, reg, value);
    
    • 根据传入的reg值,写地址。
    • UDA134X_EA000 ~ UDA134X_EA111属于扩展地址,也属于data[0:0]
      发送地址是:(5 << 2) | 0 ),发送地址时,L3MODE引脚拉低,地址模式。
      发送扩展地址,扩展地址最多有8个,但是扩展地址的最高两位为1,所以地址要与上0xc0
    #define UDA134X_EXTADDR_PREFIX	0xC0
    addr =  (reg | UDA134X_EXTADDR_PREFIX);
    ret = l3_write(&pd->l3, UDA134X_DATA0_ADDR, &addr, 1);
    

    发送扩展数据,扩展数据的高三位都是1,所以要在原来value上加0xe0

    #define UDA134X_EXTDATA_PREFIX	0xE0
    data = (value | UDA134X_EXTDATA_PREFIX);
    ret = l3_write(&pd->l3, addr, &data, 1);
    

    发送扩展地址和发送扩展数据,实际上都是发送数据,L3MODE引脚要拉高,选择数据模式。
    在这里插入图片描述

    • UDA134X_STATUS0和UDA134X_STATUS1属于data[1:0]
      发送地址是:(5 << 2) | 2 )
      发送数据:
    #define UDA134X_STATUS_ADDR	((UDA134X_L3ADDR << 2) | 2)
    addr = UDA134X_STATUS_ADDR;
    ret = l3_write(&pd->l3, addr, &data, 1);
    
    • UDA134X_DATA000,UDA134X_DATA001,UDA134X_DATA010属于data[0:0]
      发送地址是:(5 << 2) | 0 )
      发送数据:
    #define UDA134X_L3ADDR	5
    #define UDA134X_DATA0_ADDR	((UDA134X_L3ADDR << 2) | 0)
    addr = UDA134X_DATA0_ADDR;
    ret = l3_write(&pd->l3, addr, &data, 1);
    
    • UDA134X_DATA1属于data[0:1]
      发送地址是:(5 << 2) | 1 )
      发送数据:
    #define UDA134X_L3ADDR	5
    #define UDA134X_DATA1_ADDR	((UDA134X_L3ADDR << 2) | 1)
    addr = UDA134X_DATA1_ADDR;
    ret = l3_write(&pd->l3, addr, &data, 1);
    
    四. uda1341的复位操作

    发送地址:(5 << 2) | 2 )
    发送数据:value | (1<<6)

    五. uda1341的静音操作

    发送地址:(5 << 2) | 0 )
    发送数据:value | (1<<2)

    六. uda1341的时钟设置

    1.设置系统时钟
    uda1341支持三种系统时钟, 512fs, 384fs,256fs
    2.uda1341支持的采样率为:8000,11025,16000,22050,32000,44100,48000
    3.则系统时钟的范围是:256 * 8000 <= freq <= 512 * 48000

    2.设置时钟调用函数uda134x_set_dai_sysclk

    static int uda134x_set_dai_sysclk(struct snd_soc_dai *codec_dai, int clk_id, unsigned int freq, int dir)
    {
    	struct snd_soc_codec *codec = codec_dai->codec;
    	struct uda134x_priv *uda134x = codec->private_data;
    
    	pr_debug("%s clk_id: %d, freq: %u, dir: %d\n", __func__,
    		 clk_id, freq, dir);
    
    	/* Anything between 256fs*8Khz and 512fs*48Khz should be acceptable
    	   because the codec is slave. Of course limitations of the clock
    	   master (the IIS controller) apply.
    	   We'll error out on set_hw_params if it's not OK */
    	if ((freq >= (256 * 8000)) && (freq <= (512 * 48000))) {
    		uda134x->sysclk = freq;
    		return 0;
    	}
    
    	printk(KERN_ERR "%s unsupported sysclk\n", __func__);
    	return -EINVAL;
    }
    

    在这里系统时钟并没有真正的设置下去,而是保存到了uda134x->sysclk变量中,留在后面设置。

    七. 设置支持数据格式

    1.uda1341支持的格式如下:

    (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S18_3LE | SNDRV_PCM_FMTBIT_S20_3LE)
    
    1. 设置数据格式调用的函数是uda134x_set_dai_fmt
    static int uda134x_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
    {
    	struct snd_soc_codec *codec = codec_dai->codec;
    	struct uda134x_priv *uda134x = codec->private_data;
    
    	pr_debug("%s fmt: %08X\n", __func__, fmt);
    
    	/* codec supports only full slave mode */
    	if ((fmt & SND_SOC_DAIFMT_MASTER_MASK) != SND_SOC_DAIFMT_CBS_CFS) {
    		printk(KERN_ERR "%s unsupported slave mode\n", __func__);
    		return -EINVAL;
    	}
    
    	/* no support for clock inversion */
    	if ((fmt & SND_SOC_DAIFMT_INV_MASK) != SND_SOC_DAIFMT_NB_NF) {
    		printk(KERN_ERR "%s unsupported clock inversion\n", __func__);
    		return -EINVAL;
    	}
    
    	/* We can't setup DAI format here as it depends on the word bit num */
    	/* so let's just store the value for later */
    	uda134x->dai_fmt = fmt;
    
    	return 0;
    }
    
    八. uda1341设置bias(猜测是电源)等级

    SND_SOC_BIAS_ON等级:
    把ADC, DAC打开
    发送地址:(5 << 2) | 2 )
    发送数据:0x83
    在这里插入图片描述
    SND_SOC_BIAS_PREPARE等级:

    pd->power(1);
    for (i = 0; i < ARRAY_SIZE(uda134x_reg); i++)
        codec->write(codec, i, *cache++);
    

    SND_SOC_BIAS_STANDBY等级:
    发送地址:(5 << 2) | 2 )
    发送数据:value & ~(0x03)

    SND_SOC_BIAS_OFF等级:

    pd->power(0);
    
    九. 设置硬件参数

    设置硬件参数调用的函数是uda134x_hw_params

    • 设置芯片的系统时钟的除数,512, 384,256
    switch (uda134x->sysclk / params_rate(params)) 
    {
    	case 512:
    		break;
    	case 384:
    		hw_params |= (1<<4);
    		break;
    	case 256:
    		hw_params |= (1<<5);
    		break;
    	default:
    		printk(KERN_ERR "%s unsupported fs\n", __func__);
    		return -EINVAL;
    }
    

    在这里插入图片描述
    发送数据:384fs(vaule | (1 << 4)) 256fs(value | 1 << 5)

    • 设置数据模式
    switch (uda134x->dai_fmt & SND_SOC_DAIFMT_FORMAT_MASK) 
    {
    	case SND_SOC_DAIFMT_I2S:
    		break;
    	case SND_SOC_DAIFMT_RIGHT_J:
    		switch (params_format(params)) {
    		case SNDRV_PCM_FORMAT_S16_LE:
    			hw_params |= (1<<1);
    			break;
    		case SNDRV_PCM_FORMAT_S18_3LE:
    			hw_params |= (1<<2);
    			break;
    		case SNDRV_PCM_FORMAT_S20_3LE:
    			hw_params |= ((1<<2) | (1<<1));
    			break;
    		default:
    			printk(KERN_ERR "%s unsupported format (right)\n",
    			       __func__);
    			return -EINVAL;
    		}
    		break;
    	case SND_SOC_DAIFMT_LEFT_J:
    		hw_params |= (1<<3);
    		break;
    	default:
    		printk(KERN_ERR "%s unsupported format\n", __func__);
    		return -EINVAL;
    }
    

    SND_SOC_DAIFMT_I2S:0
    SND_SOC_DAIFMT_RIGHT_J和SND_SOC_DAIFMT_LEFT_J模式参考下图
    在这里插入图片描述

    十. Linux UDA1341芯片接口注册
    static struct snd_soc_dai_ops uda134x_dai_ops = {
    	.startup	= uda134x_startup,
    	.shutdown	= uda134x_shutdown,
    	.hw_params	= uda134x_hw_params,
    	.digital_mute	= uda134x_mute,
    	.set_sysclk	= uda134x_set_dai_sysclk,
    	.set_fmt	= uda134x_set_dai_fmt,
    };
    struct snd_soc_dai uda134x_dai = {
    	.name = "UDA134X",
    	/* playback capabilities */
    	.playback = {
    		.stream_name = "Playback",
    		.channels_min = 1,
    		.channels_max = 2,
    		.rates = UDA134X_RATES,
    		.formats = UDA134X_FORMATS,
    	},
    	/* capture capabilities */
    	.capture = {
    		.stream_name = "Capture",
    		.channels_min = 1,
    		.channels_max = 2,
    		.rates = UDA134X_RATES,
    		.formats = UDA134X_FORMATS,
    	},
    	/* pcm operations */
    	.ops = &uda134x_dai_ops,
    };
    
    • 注册时间:在启动内核是调用uda134x_init函数。在uda134x_init函数中注册UDA1341接口。
    static int __init uda134x_init(void)
    {
    	return snd_soc_register_dai(&uda134x_dai);
    }
    module_init(uda134x_init);
    

    跟I2S的接口注册一样,注册到一个dai_list的全局链表中,dai_list链表中是各种各样的dai接口。

    十一. 总结
    • uda134x_dai接口在内核起来时注册。
    • uda134x_dai接口包含对UDA1341芯片的时钟,传输模式等硬件设置,一个硬件参数操作集uda134x_dai_ops。

    参考博客:
    https://blog.csdn.net/gqb_driver/article/details/8551551

    展开全文
  • Unsupervised Data AugmentationOverviewUnsupervised Data Augmentation or UDA is a semi-supervised learning method which achieves state-of-the-art results on a wide variety of language and vision tasks....

    Unsupervised Data Augmentation

    Overview

    Unsupervised Data Augmentation or UDA is a semi-supervised learning method which achieves state-of-the-art results on a wide variety of language and vision tasks.

    With only 20 labeled examples, UDA outperforms the previous state-of-the-art on IMDb trained on 25,000 labeled examples.

    Model

    Number of labeled examples

    Error rate

    Mixed VAT (Prev. SOTA)

    25,000

    4.32

    BERT

    25,000

    4.51

    UDA

    20

    4.20

    It reduces more than 30% of the error rate of state-of-the-art methods on CIFAR-10 with 4,000 labeled examples and SVHN with 1,000 labeled examples:

    Model

    CIFAR-10

    SVHN

    ICT (Prev. SOTA)

    7.66±.17

    3.53±.07

    UDA

    4.31±.08

    2.28±.10

    It leads to significant improvements on ImageNet with 10% labeled data.

    Model

    top-1 accuracy

    top-5 accuracy

    ResNet-50

    55.09

    77.26

    UDA

    68.78

    88.80

    How it works

    UDA is a method of semi-supervised learning, that reduces the need for labeled examples and better utilizes unlabeled ones.

    What we are releasing

    We are releasing the following:

    Code for text classifications based on BERT.

    Code for image classifications on CIFAR-10 and SVHN.

    Code and checkpoints for our back translation augmentation system.

    All of the code in this repository works out-of-the-box with GPU and Google Cloud TPU.

    Requirements

    The code is tested on Python 2.7 and Tensorflow 1.13. After installing Tensorflow, run the following command to install dependencies:

    pip install --user absl-py

    Image classification

    Preprocessing

    We generate 100 augmented examples for every original example. To download all the augmented data, go to the image directory and run

    AUG_COPY=100

    bash scripts/download_cifar10.sh ${AUG_COPY}

    Note that you need 120G disk space for all the augmented data. To save space, you can set AUG_COPY to a smaller number such as 30.

    Alternatively, you can generate the augmented examples yourself by running

    AUG_COPY=100

    bash scripts/preprocess.sh --aug_copy=${AUG_COPY}

    CIFAR-10 with 250, 500, 1000, 2000, 4000 examples on GPUs

    GPU command:

    # UDA accuracy:

    # 4000: 95.68 +- 0.08

    # 2000: 95.27 +- 0.14

    # 1000: 95.25 +- 0.10

    # 500: 95.20 +- 0.09

    # 250: 94.57 +- 0.96

    bash scripts/run_cifar10_gpu.sh --aug_copy=${AUG_COPY}

    SVHN with 250, 500, 1000, 2000, 4000 examples on GPUs

    # UDA accuracy:

    # 4000: 97.72 +- 0.10

    # 2000: 97.80 +- 0.06

    # 1000: 97.77 +- 0.07

    # 500: 97.73 +- 0.09

    # 250: 97.28 +- 0.40

    bash scripts/run_svhn_gpu.sh --aug_copy=${AUG_COPY}

    Text classifiation

    Run on GPUs

    Memory issues

    The movie review texts in IMDb are longer than many classification tasks so using a longer sequence length leads to better performances. The sequence lengths are limited by the TPU/GPU memory when using BERT (See the Out-of-memory issues of BERT). As such, we provide scripts to run with shorter sequence lengths and smaller batch sizes.

    Instructions

    If you want to run UDA with BERT base on a GPU with 11 GB memory, go to the text directory and run the following commands:

    # Set a larger max_seq_length if your GPU has a memory larger than 11GB

    MAX_SEQ_LENGTH=128

    # Download data and pretrained BERT checkpoints

    bash scripts/download.sh

    # Preprocessing

    bash scripts/prepro.sh --max_seq_length=${MAX_SEQ_LENGTH}

    # Baseline accuracy: around 68%

    bash scripts/run_base.sh --max_seq_length=${MAX_SEQ_LENGTH}

    # UDA accuracy: around 90%

    # Set a larger train_batch_size to achieve better performance if your GPU has a larger memory.

    bash scripts/run_base_uda.sh --train_batch_size=8 --max_seq_length=${MAX_SEQ_LENGTH}

    Run on Cloud TPU v3-32 Pod to achieve SOTA performance

    The best performance in the paper is achieved by using a max_seq_length of 512 and initializing with BERT large finetuned on in-domain unsupervised data. If you have access to Google Cloud TPU v3-32 Pod, try:

    MAX_SEQ_LENGTH=512

    # Download data and pretrained BERT checkpoints

    bash scripts/download.sh

    # Preprocessing

    bash scripts/prepro.sh --max_seq_length=${MAX_SEQ_LENGTH}

    # UDA accuracy: 95.3% - 95.9%

    bash train_large_ft_uda_tpu.sh

    Run back translation data augmentation for your dataset

    First of all, install the following dependencies:

    pip install --user nltk

    python -c "import nltk; nltk.download('punkt')"

    pip install --user tensor2tensor==1.13.4

    The following command translates the provided example file. It automatically splits paragraphs into sentences, translates English sentences to French and then translates them back into English. Finally, it composes the paraphrased sentences into paragraphs. Go to the back_translate directory and run:

    bash download.sh

    bash run.sh

    Guidelines for hyperparameters:

    There is a variable sampling_temp in the bash file. It is used to control the diversity and quality of the paraphrases. Increasing sampling_temp will lead to increased diversity but worse quality. Surprisingly, diversity is more important than quality for many tasks we tried.

    We suggest trying to set sampling_temp to 0.7, 0.8 and 0.9. If your task is very robust to noise, sampling_temp=0.9 or 0.8 should lead to improved performance. If your task is not robust to noise, setting sampling temp to 0.7 or 0.6 should be better.

    If you want to do back translation to a large file, you can change the replicas and worker_id arguments in run.sh. For example, when replicas=3, we divide the data into three parts, and each run.sh will only process one part according to the worker_id.

    General guidelines for setting hyperparameters:

    UDA works out-of-box and does not require extensive hyperparameter tuning, but to really push the performance, here are suggestions about hyperparamters:

    It works well to set the weight on unsupervised objective 'unsup_coeff' to 1.

    Use a lower learning rate than pure supervised learning because there are two loss terms computed on labeled data and unlabeled data respecitively.

    If your have an extremely small amount of data, try to tweak 'uda_softmax_temp' and 'uda_confidence_thresh' a bit. For more details about these two hyperparameters, search the "Confidence-based masking" and "Softmax temperature control" in the paper.

    Effective augmentation for supervised learning usually works well for UDA.

    For some tasks, we observed that increasing the batch size for the unsupervised objective leads to better performance. For other tasks, small batch sizes also work well. For example, when we run UDA with GPU on CIFAR-10, the best batch size for the unsupervised objective is 160.

    Acknowledgement

    A large portion of the code is taken from BERT and RandAugment. Thanks!

    Citation

    Please cite this paper if you use UDA.

    @article{xie2019unsupervised,

    title={Unsupervised Data Augmentation for Consistency Training},

    author={Xie, Qizhe and Dai, Zihang and Hovy, Eduard and Luong, Minh-Thang and Le, Quoc V},

    journal={arXiv preprint arXiv:1904.12848},

    year={2019}

    }

    Please also cite this paper if you use UDA for images.

    @article{cubuk2019randaugment,

    title={RandAugment: Practical data augmentation with no separate search},

    author={Cubuk, Ekin D and Zoph, Barret and Shlens, Jonathon and Le, Quoc V},

    journal={arXiv preprint arXiv:1909.13719},

    year={2019}

    }

    Disclaimer

    This is not an officially supported Google product.

    展开全文
  • UDA1341原理图

    2015-01-04 19:38:52
    UDA1341的原理图,主要是与CPU的IIS接口。
  • 基于UDA1341音频处理芯片,用S3C2440分别通过IIS音频传输协议 DMA通信协议来实现高保真的音乐播放
  • UDA1380例程

    2014-03-03 09:13:17
    UDA1380 例程 keil4 lpc
  • UDA 任务中的第一篇论文,也是第一个将这种想法用到 UDA 任务中的。 由于现有的方法只对高级表示进行对齐,而没有利用复杂的多类结构和局部空间结构。并且以往的研究没有能够有效地将局部特征和分类器预测结合到单一...

    893387364fc6c362ff0d0ff05a2f7c69.gif

    ©作者 | 李加贝

    单位 | 浙江工商大学

    研究方向 | 视频文本检索

    本文介绍三篇来自于北京大学和牛津大学的工作,其思想都主要是利用了最大化互信息这一概念来减小域特征差异的,通过交叉熵损失函数来隐式的实现这一目的,并且在跨模态任务中的两篇论文中也有很多共通之处。这两篇论文都用到了单模态和跨模态 encoder,旨在通过单模态 encoder(在单模态任务中进行了预训练)来编码通用的特征表示,再通过最大化单模态和跨模态特征的互信息来学习更有鉴别性和可转移的特征,打破跨域的差异。

    具体的,在 AAAI 的论文中,作者引入了概念分类一致性和为 target 视频赋予伪文本,在 CVPR 中,主要是通过聚类来获得聚类中心,使得不同的 encoder 编码的特征具有原型一致性,来使得源域和目标域的跨模态表示之间互信息最大化。

    86ee6de4656e0b471bdda3eba9229fc4.png

    STAFF

    4af2fb4ea676db607b77c22ff9f7adda.png

    论文标题:

    Structure-Aware Feature Fusion for Unsupervised Domain Adaptation

    收录会议:

    AAAI 2020

    论文链接:

    https://ojs.aaai.org/index.php/AAAI/article/view/6629

    1.1 Key Idea

    这篇论文应该是作者将互信息最大化引入到 UDA 任务中的第一篇论文,也是第一个将这种想法用到 UDA 任务中的。

    由于现有的方法只对高级表示进行对齐,而没有利用复杂的多类结构和局部空间结构。并且以往的研究没有能够有效地将局部特征和分类器预测结合到单一全局特征中进行对抗学习。

    在这篇论文中,作者将分类器预测和局部特征映射中传递的有价值的信息整合到全局特征表示中,然后执行单个极小极大博弈(对抗训练)使其域不变。并且采用一种新的目标方法通过有效的采样策略和鉴别器设计来隐式的最大化互信息(这一想法在之后的两篇跨模态跨域任务中都有用到)。

    4644ceaf066053e9e4f991f54470696a.png

    1.2 Method

    将 source 图像输入到 encoder 中得到 latent local 特征 ,将局部特征通过特征转换器 F(全局池化)得到latent global 特征 ,再利用分类器进行预测,使用传统的交叉熵损失函数进行优化。

    1e12b37f1a7fb46820b129a977949edd.png

    解决 UDA 问题的一般方法是对编码器和特征转换器的进行正则化学习,以匹配 和 之间的边缘分布。一旦边缘分布匹配,source 分类器可以直接用于 target 特征上进行标签预测,在基于这样一种假设的情况下,作者使用对抗学习来最小化特征差异。

    14be2bd1a7dbcefb9e236ada90433db4.png

    通过对抗学习,来最小化 E 和 F 跨域的差异,以至于域分类器 D 不能正确的分类样本来自于哪个域。

    然而,上述假设是存在问题的:

    1)只匹配边际分布而不利用 multi-mode 结构可能容易发生负迁移,并且不能保证来自具有相同类标签的不同域的样本将被映射到特征空间的相近位置;

    2)只匹配全局特征而忽略局部几何空间结构。然而,域差异可能从早期卷积层开始就出现了。

    本文的目标是将多层次特征整合到全局特征中,仅使用单一的对抗性训练将其对齐。

    因此作者在上述的基础上又引入了 global discriminator MG 和 local discriminator LG 通过最大化全局特征和分类器预测之间,以及全局特征和局部特征之间的互信息来实现该目标。

    0b1e996f347be0c4c66b5d78258bd667.png

    55d873b4d195f8db47cb4d804fcbbf74.png

    1.2.1 Maximize MI between global representation and classifier prediction

    3c53032beb32426e42d0087965aeee12.png

    作者使用一种 encoder-discriminator 结构来隐式的估计 MI,作者使用如图 2 所示的网络设计来最大化全局特征 g 和其对应的分类器预测 h 之间的互信息,具体地,从联合分布 P(g, h) 和边缘乘积 P(g) P(h) 中采样正样本 (g1, h1) 和负样本 (g1, h2)。

    给定 g1,全局 MI discriminator MG 旨在辨别其他输入 (h1 or h2) 是否来自同一输入图像,以协作的方式训练 F 和 C。

    对于 MG,首先使用一个全连接层将分类器预测 映射为 ,然后使用点积来计算 g 和 的相似度。

    e72895e2796a2ed5e30d7da955318e70.png

    5cfa9eddcda604c8c686c4b1a4937e1b.png

    香农熵相比 KL 散度更加的稳定,因为它在 [0,1] 区间内,对称并且更平滑。

    另一种替代方案,作者使用 Noise Contrasting Estimation (NCE) Loss。

    49c0c49b05d33e5c037e6468056d3908.png

    第三种替代方案,作者使用 Mutual Information Neural Estimation (MINE) 来直接优化 MI。

    5adf2634d644c6f8552c4c0579b0b04a.png

    MINE 显式的计算了两个连续变量之间的 MI。

    上述所有目标函数都是基于联合边际分布和边际分布乘积之间 KL 发散度的不同近似作为 MI 的定义。这篇论文是第一个将 MI estimation 引入到 UDA 问题中的。

    1.2.2 Maximize MI between Global representation and Local representation

    e4c8d5e746f1e4edb23325eb596de811.png

    如图 3 所示,首先编码输入,得到一个 feature map ,表示为 来保存空间结构信息,然后将 l 通过 feature transformer F,得到对应的全局特征 g,最后作者将在空间位置 i 的局部特征 l(i) 与全局特征 g 之间的 average MI loss 作为局部 MI estimator。

    092b71d71c4a5f3cc2b57a1e6becc6f3.png

    类似的,作者使用 encoder-discriminator 结构设计和采样策略来最大化 MI(g, l)。

    从联合分布中采样 (g1, l1) 作为正样本,从边缘分布的乘积中采样 (g1, l2) 作为负样本,旨在训练局部 MI discriminator 正确的判别 l1 和 l2 哪个与 g1 是来自相同的输入图像,协作训练局部特征编码器E和全局特征转换器 F。

    与全局 MG 略有不同,局部特征通过 1x1 卷积射为和全局相同的通道数,然后使用点积计算全局特征和每个位置i的局部特征之间的相似度,作为 ML(g, l) 的预测结果。

    通过将 MG(g, h) 替换为 L(g, l (i)),上述的替代方案 (7) (8) (9) 同样可以用来最大化 ML(g, l)。值得注意的是,由于相同的全局表示鼓励所有 patches 具有高 MI,这有利于跨 patches 编码共享信息。

    1.2.3 Optimization

    0882a38b1c9eb2ca0f414b99e207b957.png

    1.3 Experiment

    STAFF 在所有基准上都表现得很好,其中包括 Digit、Office-31 和 Office-Home 数据集。 

    STAFF 优于所有方法,其中 GentoAdapt、UNIT 和 SBADA-GAN 依赖于像素级图像生成,这是专门为数字和 real-world adaptation task 而设计的。这些方法在域位移较小的情况下取得了很好的效果,而在域差异较大的情况下,性能下降了很多,这可能是因为跨差异较大的领域进行图像转换具有挑战性。基于匹配潜在特征分布的方法具有较好的稳定性。

    7ed37b5fa9b08905b090b274eaaa62a5.png

    该方法在所有任务上都优于所有的比较方法。与数字数据集相比,这些任务难度更大,域间差异更大,适应精度更低,STAFF 在这样一个困难的任务上产生更大的提升,这表明了结构感知特征融合的重要性。

    99c88ce2416d5f3e822ea5acf0f0ed83.png

    该方法在 12 个 transfer task 中有 10 个比所有 Baseline 方法的性能都要高,除了最新的 SymNets,作者解释为,潜在的原因是:OfficeHome 数据集包含更多的类类别,该模型可能期望在目标域上匹配更困难的多模态类预测分布(模态结构更重要)。

    14e7622ee9b84f7b87c8faa666545862.png

    1.4 Ablation 

    添加全局 MI 最大损失 MI(g, h) 或局部 MI 最大损失 MI(g, l),性能提高约超过 8%,验证利用互信息约束来集成多级特性用于散度衡量的有效性,另外可以观察到,作为单个模块,全局 MI 最大损失有助于获得更大的性能提升。结果表明整合分类器预测中有价值的信息,对保持域不变特征的识别能力,从而提高分类器的分类性能非常重要。

    1699b3c2cba9a352e25470ada9f1fd7b.png

    在无监督域自适应问题中,作者比较了不同的特征集成方法。通过四种方式将局部空间结构和分类器预测融合到全局表示中。表明了基于 MI 的集成方法能够更有效地整合结构信息。

    fde5a9d1b022be256bbe55298219db22.png

    作者比较了上述方法中所提到的三个目标函数来最大化 MI,以集成局部和模态结构,其中包括 JensonShannon Divergence (JSD), Noise Contrastive Estimation (NCE) 和 Mutual Information Neural Estimates (MINE)。可以看出,使用 JSD 取得了最好的性能,作者还发现了随着 batchsize 大小的增加,NCE 损失的性能得到了很大的改善,batchsize 的增加使得负样本的数量增加,模型可以学习到更多的知识(当批量大小为 256 时,它可以达到与 JSD 类似的性能,即 96.3)。

    ba66ac1ca890b4913b0e922c8a6e5ae5.png

    作者还通过 A-distance 定量的测量了分布差异。A-distance 的计算如下:,其中 是使用支持向量机 (SVM) 分类器训练来区分源和目标的域分类泛化误差。可以看到,使用 STAFF(基于 MI 的集成)可以达到最低的 A 距离,这证明了它能更有效地缩小分布差距方面的优越性能。基于 MI 的特征集成明显比其他方法聚类更紧密,这表明了 STAFF 在更有鉴别性预测上的有效性。

    b151a0699dc94865812dd0bbf901a09e.png

    作者可视化局部 MI 鉴别器的输出,来表示哪个空间位置与全局特征具有更大的 MI,图像中不同区域对应的 MI 值不同。颜色越热,MI 值越大。这些结果直观地表明了局部特征图中 MI 较大的位置与识别区域(即前景对象)密切相关。因此可以实现细粒度的特征对齐,从而获得更好的性能。

    b3bf0ba307b8f95025b4ca49bc813457.png

    cf611249bafc9399ecaa24ed5f03286a.png

    CAPQ

    1a7e0f8c43bc68b88c3ef7e564dcb6fe.png

    论文标题:

    Mind-the-Gap! Unsupervised Domain Adaptation for Text-Video Retrieval

    收录会议:

    AAAI 2021

    论文链接:

    https://ojs.aaai.org/index.php/AAAI/article/view/16192

    84888180fe76ad193bc94682f8316b0e.png

    经验风险最小化面临着两种类型的 domain shift:

    • video content/style shift

    • description distribution shift(通常是由产生每个域的注释者团队之间的描述风格的差异所驱动的)

    作者提出了 conceptAware-Pseudo-Query (CAPQ) framework 用于跨域视频文本检索。

    • a concept preservation regulariser 旨在提高学习嵌入的可转移性

    • a pseudo-labelling algorithm 旨在确保它们尽可能具有区别性,以便在没有描述分布的情况下提高目标域上的检索性能。

    395d7fbfb7c5c39d4e7017980ccad52b.png

    CAPQ 由以下部分组成: 

    a feature extractor F, a cross-domain video encoder , a text encoder , a concept selector and a hallucinator .

    来自 source 域的有标签的视频文本对和来自 target 域的无标签的视频。

    b0c513486252e8684704b945c50517d8.png

    goal:学习更有鉴别性和可转移的特征,打破跨域的差异,学习一个更好的 target 域嵌入空间。

    Feature Extractor:

    在图像分类或动作识别等任务上进行预训练的模型,并冻结作为特征 extrator,用来提起 source 和 target 域视频特征。

    Descriptors F(vS) 和 F(vT)用来形成内容的通用表示(这是通过使用覆盖广泛语义概念的预训练模型来实现的)。我觉得应该可以理解为一种单模态 encoder。

    Video and Text Encoder:

    video encoder φvid 将 F(v) 作为输入,并投影到视频文本联合嵌入空间。

    text encoder φtext 首先使用预训练的 word-level embeddings 将每个 query sentence t 映射到一个特征向量集合,然后通过 NetVLAD 来聚合这些 word-level embeddings,并将最终的文本特征投影到视频文本联合嵌入空间中。

    Transferable:

    最小化 concept preservation loss LP,目的是通过惩罚无法保留预训练模型提供的判别信号的联合空间嵌入来保留先前获得的知识。

    Discriminative:

    视频文本对-ranking loss:

    226fdffb841a77e5b0d00b3b67885270.png

    2.1 Concept Preservation(只在训练中使用)

    使用一个 concept selector ψC 将 generic video descriptor F(v) 映射到一个概念分布上。

    就比如:视频检索经常使用在 ImageNet 上进行图像分类的预训练模型,那么 concept selector 就相当于是预训练模型的最后线性层,将 F(v) 映射到 ImageNet 1000 个概念分布上。

    为了在不同的域之间提供一个共同的信号,作者对 source 和 target 的 generic video descriptors 都执行该操作,在 source 域中,由于视频文本对是可获得的,因此作者要求对于给定的匹配视频文本对 {vS, tS} ,它们应该映射到相同的概念分布上。

    619c1325a71d0b7fd25e3e39686fa30e.png

    接下来,作者使用预测得到的概念分布 y 作为一种信号来鼓励视频文本联合嵌入保存预训练模型所具有的概念知识,具体地,作者构建了一个 hallucinator (两层 MLP),使得 embeddings 和 的预测 与 y 保持一致,对于视频和文本,作者使用了相同的 ,隐式的对齐两个不同的模态。

    bef3bc8c9216bb86aa461e1a4710b3f4.png

    最终,concept preservation loss 表示为:

    2e3c8237ac3a1525d2019032ac8dc88b.png

    在 target 域中,只有视频,没有对应的文本。

    2.1.1 Discussion on Multi-Modality Features:

    由于在视频文本检索任务中,最近的一些工作是使用了多模态预训练模型特征,作者说明,通过使用 个特征提取器 ,CAPQ 同样可以直接适用于多模态 setting,将公式(3)扩展为 multi-concept preservation loss。

    a03d9de71291cf7186723b8f219e77a4.png

    2.2 Discriminative Joint Space Learning

    使用 contrastive margin loss 来训练 source 域的视频文本对,来得到更有鉴别性的嵌入特征。

    e4338509da3e9baecf86f7a0272f8ff1.png

    作者提出改进联合视频-文本嵌入空间(由 训练),以适应鉴别性 target 域检索的要求,提出了伪标签选择机制,具体地,从 unbiased text embeddings 中选择,并将 'best' 文本嵌入 赋给 target 视频作为伪标签,然后使用 second ranking loss (类似公式(5))进行优化。

    516d3d8174a5b1c6f0b1783664f17666.png

    2.2.1 Mutually-Exclusive Selection Algorithm:

    作者所说的无偏是指对特定的注释器分布无偏。

    给定一个无偏文本嵌入 ,作者通过选择和 target 视频相似度分数最高的文本嵌入作为伪标签。

    31c3be51fca28dd89ebe1af7314bd2ca.png

    但是单单这样做会存在一个问题,尤其对于训练初期,对于 target video vi 的伪标签文本嵌入,也可能会和同时和其他视频 vj 产生更高的分数 因此作者设计了一种互斥伪标签选择,通过使用双向 softmax 操作,首先给定一个相似度矩阵 S,沿着文本维度使用 softmax,得到 Stext,再沿着视频维度使用 softmax,得到 Svideo,然后将 Stext 和 Svideo 相成得到最终的相似度 S'。

    f67f3675092c0a66d2b344bc091e8cdb.png

    最终,选择 S' 中分数最高的作为伪标签,作者说明,这是专为跨模态检索所涉及的,因为该方法首先查看所有候选文本和视频,建立平滑的相似度图,最后分配“最佳”伪文本,这些伪文本不是其他不同视频查询的最近邻,这也是与分类任务中伪标签的选择的关键不同之处。

    我这里对于无标签的选择有点疑惑,如果存在这种极端问题,就是某些视频确实没有相关的的文本,或者说文本的相关度并不高呢,以及无偏文本集合的选择。

    2.3 Experiment

    a393d65bc01b9da08a471cf80516f87a.png

    9568b770b13da1cdf7eed70d806ddcb1.png

    • Video Shift: VisualEvents→MovieClips (split Video.)MSVD -> LSMDC 

    • Text Shift: AudioVisualEvents→MovieClips(split Text.)MSRVTT -> LSMDC 

    • Annotation Function Shift: MovieClips→Activities(splitAnnoF) LSMDC -> ActivityNet 

    • VisualEvents→Activities (splitHard) MSVD -> ActivityNet

    feb442c9bfa73bb78332170d6886c0e2.png

    2.4 Ablation

    SO baseline (without adaptation) 

    伪文本选择作为一个单独的模块贡献了最显著的性能增益,这表明通过最小化伪文本查询和目标视频之间的第二排名损失来细化联合文本-视频嵌入空间是有价值的。

    第二行中,作者报告了 CAPQ-preserve (no target videos),只在 source 视频和文本中使用概念保存损失(没有伪文本的选择),在这种没有 target 视频的情况下,模型依然超出了 baseline,这表明,使特征嵌入具有通用性是有用的,但对于跨域的视频检索任务是不够的。

    0ec963fe921a7182f8f0a3decfb84fac.png

    ad99f493ac2577363fce4c0e619a9ed9.png

    在图4的最后一行中,作者展示了一个 CAPQ 不够有效的示例。在这种情况下,由于对目标视频中出现的概念的覆盖不够,伪文本方法没有很高的实用性。然而,所选的伪文本在这种设置中仍然提供了一些好处(特别是类似的场景(房间/公寓),并且仍然可以被 CAPQ 正确识别,从而比 SO 模型提供了一些性能提升)。

    9571bef77742adfc3ee4a96720b007af.png

    ACP

    88b5d393492379465fbe8cee27928356.png

    论文标题:

    Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval 

    收录会议:

    CVPR 2021

    论文链接:

    https://openaccess.thecvf.com/content/CVPR2021/papers/Liu_Adaptive_Cross-Modal_Prototypes_for_Cross-Domain_Visual-Language_Retrieval_CVPR_2021_paper.pdf

    该模型旨在通过学习跨模态视觉文本表示来实现目标域检索,同时最小化源和目标域的单模态和跨模态分布偏移。

    3.1 key idea 

    首先,作者对归纳偏差进行编码,即习得的跨模态特征应该是相对于每个模态中的概念构成的 其次,在学习过程中,作者在源域和目标域的跨模态表示之间采用互信息最大化。

    3.2 Setting

    Unsupervised Domain Adaptation (UDA)

    b977b8c6963eeb2c206a5799b7a21491.png

    sampled from joint distributions and (在一个联合分布上进行采样,并非任意两个不同的域)。

    4ba1d56052b1d24b8ca58e9cb402429c.png

    该模型由 6 个模块组成: 

    • 视觉和文本编码器 Ev 和 El 

    • 单模态视觉和文本 keels Kv 和 Kl 

    • 跨模态源和目标原型网络 Ps 和 Pt

    3.3 Visual and Text Encoders

    使用 visual encoder Ev 和 text encoder El 将 source 视觉样本和文本描述映射到一个跨模态嵌入空间中,使用 bidirectional ranking loss 来对齐视觉和文本。

    23a9f9812750f117f79b43339d00686b.png

    3.4 Uni-modal Compositional Keels 

    为了用多个视觉概念(多个词)的组合来表示复杂的语义特征,作者提出使用每个模态中线程的结构只是来构建视觉和文本 keels,使用现成的视觉分类和文本分类模型作为视觉和文本 descriptors(就是作为单模态编码器),然后使用 Lloyds’s algorithm 进行聚类,得到一个聚类中心集合(即视觉和文本 keels),然后计算每个样本的特征与这些中心的相似度,并赋予标签。

    Text Keel Construction: 使用通用的 generic text descriptors(在大型语料库中预训练的模型,并冻结参数)来编码 source 文本描述,并将文本特征使用 Lloyds’s algorithm 进行聚类得到 N 个 cluster,每一个 cluster 中心命名为 text keel,然后计算每个文本样本特征与每个 keel 的相似度来得到 cluster assignment 的概率。

    8f98cccac37d3f48767f3e094788bee0.png

    87a587a1593392e706b1b180df33e4e4.png

    Visual Keel Construction:与 text keel construction 类似,使用预训练模型来得到单模态视觉特征,并进行聚类,得到视觉 keels,然后计算每个 cluster assignment 的概率。

    aa5ddc4f6a510474395deaf0252811aa.png

    4bd1c5f6d276cf56bbfb3f67baf8fff6.png

    3.5 Source and Target Prototypical Network

    使用 KL 散度使跨模态的原型预测和单模态的原型保持一致,target 原型网络是从视觉 keels(由 target data 构建)中进行学习的,source 原型网络是从文本 keels(由 source data 构建)中进行学习的。

    由于原型网络是分别由 source 和 target 样本所驱使的,因此它们的分配差异反应了 domain shifts,相同的分配也反应了跨域之间的潜在关系,作者使用最大化 source 和 target 之间原型分配的互信息(MI)来进行跨模态特征正则化学习。

    Source Prototypical Network: 原型网络由一个单独的线性映射组成 ,原型网络权重矩阵的第 n 行代表了第 n 个原型,将原型网络应用于跨模态嵌入特征 和 上,目标是基于单模态的文本 keel 所提供知道信号来近似跨模态嵌入的中心。

    原型网络 Ps 旨在预测 N 为的概率向量。

    1dd32d2ee59a0af1a2fbee5ff1b0e9e1.png

    ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

    0aac056a7e082c1caf82bb591a8a7f1d.png‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

    将从单模态文本 keel 中得到的 keel assignment 作为一种软标签来指导跨模态文本嵌入 的学习过程,由于视觉内容 与 source 文本样本 是成对的,因此作者提出将从 中获得的软标签传播到 中。

    ff34fa80f6b2011083489e044dd3a51d.png

    85a7774a9a48510f5389d42005a166f6.png

    Target Prototypical Network: 在跨模态嵌入特征 上应用原型网络 ,来预测每一个 target 样本的原型 assignment。

    70398b655122034a71e4d4220a94c178.png

    9ec8209501b9a546892b769fafa513d7.png

    ed41d692a47af589d7c5eeb10897732f.png

    3.6 Maximising Mutual Information between Cross-Modal Prototypes

    对于每一个 source 和 target 视觉样本 和 ,可以让它们通过 source 和 target 原型网络 和 ,来获得跨模态原型 assignment。

    为了减少 cross-domain shift,作者提出对齐相同输入的原型 assignment 和 ,不论它们是来自于哪个域。

    值得注意的是,作者这里并没有使用完美对齐来约束 source 和 target 的原型 assignment,因为 source 和 target 原型 和 可能表示了不同的概念(甚至是互补的概念),作者这里是采用最大化 source assignment 和 target assignment 之间的互信息,该设计的灵感来自于这样的观察:最大化互信息保留了跨域的公共信号,同时丢弃其中一个而不是另一个发生的信号。

    由于 MI 很难直接衡量在高维空间中衡量两个随机变量,作者这里使用一个目标函数隐式的最大化 MI 通过一种 encoder discriminator 结构和一种有效的采样策略。

    034b04bea29c7656dbe4854abc379a84.png

    172235d5114e27f4518636839745fa64.png

    我的理解是,比如给定一个视频样本,通过 target 原型网络得到一个原型 assignment ,然后在将样本通过 source 原型网络得到一个原型 assignment ,使用映射矩阵,将 映射得到 (和 shape 相同),然后计算 和 的相似度,作为正样本;然后同理得到另一个视频样本的 ,就算 和 的相似度(点积),作为负样本,然后使用 bce 损失,最大化正样本之间的 MI。

    3.7 Objective Functions

    0d0c99e215bc6fe85c05d0d98d043087.png

    3.8 Experiment

    85f71eba8b4e441414b77f99b6063da2.png

    e175eb2503187da4086a94813de45c80.png

    3362ced524cc6241f67473758389df6c.png

    特别鸣谢

    感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

    更多阅读

    819115f6d3dce39df8e42ce6f514ca18.png

    87d3f731b58a1b96877fa9c4603b7ef9.png

    7f3c23a11291c1bdbb57a5948573d691.png

    6beb8fab32f5cef906d328293751c92c.gif

    #投 稿 通 道#

     让你的文字被更多人看到 

    如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

    总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

    PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

    📝 稿件基本要求:

    • 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

    • 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

    • PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

    📬 投稿通道:

    • 投稿邮箱:hr@paperweekly.site 

    • 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

    • 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

    0817e8dffee9b0a86a1a368761fa8476.png

    △长按添加PaperWeekly小编

    🔍

    现在,在「知乎」也能找到我们了

    进入知乎首页搜索「PaperWeekly」

    点击「关注」订阅我们的专栏吧

    ·

    eef2713c8c13bc46bd8d058a3831503e.png

    展开全文
  • UDA复制狗写狗工具

    热门讨论 2011-07-02 10:28:09
    UDA复制狗写狗工具SAFENET Micro Dog UDA复制工具.
  • 1. 获取声卡驱动s3c2410-uda1431.c 2. 将s3c2410-uda1431.c复制到sound/oss/目录下 3. 修改oss目录下的kconfig vi sound/oss/Kconfig
  • 1、UDA简介: 半监督学习最近在标签数据匮乏的情况下,在改进深度学习模型方面显示出很大的前景。首先利用已标注数据训练出模型,再用该模型预测大量的未标注数据创造出伪标签,然后基于伪标注和已标注数据共同训练...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,292
精华内容 1,716
关键字:

uda

友情链接: winSpriteModule.rar