@@ -22,7 +22,7 @@ class EncodingCircuitBase(ABC):
2222
2323 def __init__ (self , num_qubits : int , num_features : int = None ) -> None :
2424 self ._num_qubits = num_qubits
25- self ._num_features = num_features
25+ self ._num_features = num_features if num_features != 0 else None
2626
2727 if num_features is not None :
2828 warnings .warn (
@@ -149,14 +149,16 @@ def draw(
149149 ):
150150 feature_vec = ParameterVector (feature_label , self .num_encoding_slots )
151151
152- elif self . num_features is not None and num_features is None :
153- feature_vec = ParameterVector (feature_label , self .num_features )
152+ elif num_features or self . num_features :
153+ feature_vec = ParameterVector (feature_label , num_features or self .num_features )
154154 else :
155155 feature_vec = [Parameter (feature_label )]
156156
157157 # ensure random configuration is available
158158 if hasattr (self , "_is_config_available" ) and not self ._is_config_available :
159- self ._gen_random_config (num_features = num_features , seed = self .get_params ()["seed" ])
159+ self ._gen_random_config (
160+ num_features = num_features or self .num_features or 0 , seed = self .get_params ()["seed" ]
161+ )
160162
161163 # ensure that the LayeredEncodingCircuit is built before drawing
162164 if hasattr (self , "_build_layered_pqc" ):
@@ -211,6 +213,8 @@ def set_params(self, **params) -> EncodingCircuitBase:
211213 f"Invalid parameter { key !r} . "
212214 f"Valid parameters are { sorted (valid_params )!r} ."
213215 )
216+ if key == "num_features" and value == 0 :
217+ value = None
214218 try :
215219 setattr (self , key , value )
216220 except :
0 commit comments