1- using Tensorflow . NumPy ;
1+ using OneOf ;
2+ using Tensorflow . NumPy ;
23
34namespace Tensorflow . Util
45{
@@ -8,10 +9,10 @@ namespace Tensorflow.Util
89 /// </summary>
910 public class ValidationDataPack
1011 {
11- public NDArray val_x ;
12- public NDArray val_y ;
13- public NDArray val_sample_weight = null ;
14-
12+ internal OneOf < NDArray , NDArray [ ] > val_x ;
13+ internal NDArray val_y ;
14+ internal NDArray val_sample_weight = null ;
15+ public bool val_x_is_array = false ;
1516 public ValidationDataPack ( ( NDArray , NDArray ) validation_data )
1617 {
1718 this . val_x = validation_data . Item1 ;
@@ -27,15 +28,17 @@ public ValidationDataPack((NDArray, NDArray, NDArray) validation_data)
2728
2829 public ValidationDataPack ( ( IEnumerable < NDArray > , NDArray ) validation_data )
2930 {
30- this . val_x = validation_data . Item1 . ToArray ( ) [ 0 ] ;
31+ this . val_x = validation_data . Item1 . ToArray ( ) ;
3132 this . val_y = validation_data . Item2 ;
33+ val_x_is_array = true ;
3234 }
3335
3436 public ValidationDataPack ( ( IEnumerable < NDArray > , NDArray , NDArray ) validation_data )
3537 {
36- this . val_x = validation_data . Item1 . ToArray ( ) [ 0 ] ;
38+ this . val_x = validation_data . Item1 . ToArray ( ) ;
3739 this . val_y = validation_data . Item2 ;
3840 this . val_sample_weight = validation_data . Item3 ;
41+ val_x_is_array = true ;
3942 }
4043
4144 public static implicit operator ValidationDataPack ( ( NDArray , NDArray ) validation_data )
@@ -52,15 +55,24 @@ public static implicit operator ValidationDataPack((IEnumerable<NDArray>, NDArra
5255
5356 public void Deconstruct ( out NDArray val_x , out NDArray val_y )
5457 {
55- val_x = this . val_x ;
58+ val_x = this . val_x . AsT0 ;
5659 val_y = this . val_y ;
5760 }
5861
5962 public void Deconstruct ( out NDArray val_x , out NDArray val_y , out NDArray val_sample_weight )
6063 {
61- val_x = this . val_x ;
64+ val_x = this . val_x . AsT0 ;
65+ val_y = this . val_y ;
66+ val_sample_weight = this . val_sample_weight ;
67+ }
68+
69+ // add a unuse parameter to make it different from Deconstruct(out NDArray val_x, out NDArray val_y, out NDArray val_sample_weight)
70+ public void Deconstruct ( out NDArray [ ] val_x_array , out NDArray val_y , out NDArray val_sample_weight , out NDArray unuse )
71+ {
72+ val_x_array = this . val_x . AsT1 ;
6273 val_y = this . val_y ;
6374 val_sample_weight = this . val_sample_weight ;
75+ unuse = null ;
6476 }
6577 }
6678}
0 commit comments