Input: Unpaired real-world data: Su; |
Paired synthetic data: Sp; |
Batch sizes for Su and Sp : x and y; |
Indicator function: Sm. |
|
1. Load the pretrained models P and u; |
2. while not convergent do |
3. Sample unlabeled data {xi} from SU; |
4. Sample labeled data {(xi, yi)} from SP; |
5. // Update the primal mode |
6. Update P by minimizing the objective: |
7.
\sum\limits_{i = 1}^{m + n} {{I_{{s_p}}}\left( {{x_i}} \right){\iota _p}\left( {P\left( {{x_i}} \right),{y_i}} \right) + \lambda {\iota _D}\left( {D\left( {P\left( {{x_i}} \right)} \right),{x_i}} \right)}
|
8. // Update the dual model |
9. Update D by minimizing the objective: |
10.
\sum\limits_{i = 1}^{m + n} {\lambda {\iota _p}\left( {D\left( {P\left( {{x_i}} \right)} \right),{x_i}} \right)}
|
11. END |