HyperParameters
類別keras_tuner.HyperParameters()
用於存放超參數空間和當前值的容器。
可以將 HyperParameters
的實例作為參數傳遞給 HyperModel.build(hp)
來建構模型。
為了防止使用者依賴於非啟用狀態的超參數值,只有啟用狀態的超參數才應該在 HyperParameters.values
中具有值。
屬性
HyperParameter
物件的列表。Boolean
方法HyperParameters.Boolean(name, default=False, parent_name=None, parent_values=None)
在 True 和 False 之間進行選擇。
參數
HyperParameter
實例的名稱必須是唯一的。HyperParameter
的條件的父 HyperParameter
的名稱。HyperParameter
的條件的父 HyperParameter
的值。返回值
超參數的值,如果超參數未啟用,則返回 None。
Choice
方法HyperParameters.Choice(
name, values, ordered=None, default=None, parent_name=None, parent_values=None
)
從一組預定義的可能值中選擇一個值。
參數
HyperParameter
實例的名稱必須是唯一的。True
。對於任何其他值,必須為 False
。values
中的選項之一,則為 Nonevalues
中的第一個條目。HyperParameter
的條件的父 HyperParameter
的名稱。HyperParameter
的條件的父 HyperParameter
的值。返回值
超參數的值,如果超參數未啟用,則返回 None。
Fixed
方法HyperParameters.Fixed(name, value, parent_name=None, parent_values=None)
固定、不可調整的值。
參數
HyperParameter
實例的名稱必須是唯一的。HyperParameter
的條件的父 HyperParameter
的名稱。HyperParameter
的條件的父 HyperParameter
的值。返回值
超參數的值,如果超參數未啟用,則返回 None。
Float
方法HyperParameters.Float(
name,
min_value,
max_value,
step=None,
sampling="linear",
default=None,
parent_name=None,
parent_values=None,
)
浮點數值超參數。
範例 #1
hp.Float(
"image_rotation_factor",
min_value=0,
max_value=1)
區間 [0, 1] 中的所有值都有相同的取樣機率。
範例 #2
hp.Float(
"image_rotation_factor",
min_value=0,
max_value=1,
step=0.2)
step
是樣本之間的最小距離。 可能的值為 [0, 0.2, 0.4, 0.6, 0.8, 1.0]。
範例 #3
hp.Float(
"learning_rate",
min_value=0.001,
max_value=10,
step=10,
sampling="log")
當 sampling="log"
時,step
會在樣本之間相乘。 可能的值為 [0.001, 0.01, 0.1, 1, 10]。
參數
HyperParameter
實例的名稱必須是唯一的。sampling="linear"
,則它將是兩個樣本之間的最小加數。 如果 sampling="log"
,則它將是兩個樣本之間的最小乘數。sampling
參數決定值如何投影到 [min_value, max_value] 的範圍內。 「linear」:min_value + value * (max_value - min_value) 「log」:min_value * (max_value / min_value) ^ value 「reverse_log」:(max_value - min_value * ((max_value / min_value) ^ (1 - value) - 1))min_value
。HyperParameter
的條件的父 HyperParameter
的名稱。HyperParameter
的條件的父 HyperParameter
的值。返回值
超參數的值,如果超參數未啟用,則返回 None。
Int
方法HyperParameters.Int(
name,
min_value,
max_value,
step=None,
sampling="linear",
default=None,
parent_name=None,
parent_values=None,
)
整數超參數。
請注意,與 Python 的 range
函數不同,max_value
包含在此參數可以採用的可能值中。
範例 #1
hp.Int(
"n_layers",
min_value=6,
max_value=12)
可能的值為 [6, 7, 8, 9, 10, 11, 12]。
範例 #2
hp.Int(
"n_layers",
min_value=6,
max_value=13,
step=3)
step
是樣本之間的最小距離。 可能的值為 [6, 9, 12]。
範例 #3
hp.Int(
"batch_size",
min_value=2,
max_value=32,
step=2,
sampling="log")
當 sampling="log"
時,step
會在樣本之間相乘。 可能的值為 [2, 4, 8, 16, 32]。
參數
HyperParameter
實例的名稱必須是唯一的。sampling="linear"
,則它將是兩個樣本之間的最小加數。 如果 sampling="log"
,則它將是兩個樣本之間的最小乘數。sampling
參數決定值如何投影到 [min_value, max_value] 的範圍內。 「linear」:min_value + value * (max_value - min_value) 「log」:min_value * (max_value / min_value) ^ value 「reverse_log」:(max_value - min_value * ((max_value / min_value) ^ (1 - value) - 1))min_value
。HyperParameter
的條件的父 HyperParameter
的名稱。HyperParameter
的條件的父 HyperParameter
的值。返回值
超參數的值,如果超參數未啟用,則返回 None。
conditional_scope
方法HyperParameters.conditional_scope(parent_name, parent_values)
開啟一個範圍以建立條件式超參數。
僅當 parent_name
指定的父 HyperParameter
等於傳遞至 parent_values
的值之一時,在此範圍下建立的所有 HyperParameter
才會處於作用中狀態。
如果條件不滿足,則在此範圍下建立 HyperParameter
將會註冊 HyperParameter
,但會返回 None
而不是具體值。
請注意,無論條件是否滿足,此範圍下的任何 Python 代碼都將執行。
此功能用於 Tuner
以收集更多關於搜尋空間和當前試驗的資訊。 它對於模型選擇特別有用。 如果父 HyperParameter
用於模型選擇,則模型中的 HyperParameter
應僅在選取模型時處於作用中狀態,這可以使用 conditional_scope
來實現。
範例
def MyHyperModel(HyperModel):
def build(self, hp):
model = Sequential()
model.add(Input(shape=(32, 32, 3)))
model_type = hp.Choice("model_type", ["mlp", "cnn"])
with hp.conditional_scope("model_type", ["mlp"]):
if model_type == "mlp":
model.add(Flatten())
model.add(Dense(32, activation='relu'))
with hp.conditional_scope("model_type", ["cnn"]):
if model_type == "cnn":
model.add(Conv2D(64, 3, activation='relu'))
model.add(GlobalAveragePooling2D())
model.add(Dense(10, activation='softmax'))
return model
參數
HyperParameter
的條件的父 HyperParameter
的名稱。HyperParameter
的條件的父 HyperParameter
值的清單。get
方法HyperParameters.get(name)
返回此超參數集的當前值。