本文整理汇总了Python中keras.Model方法的典型用法代码示例。如果您正苦于以下问题:Python keras.Model方法的具体用法?Python keras.Model怎么用?Python keras.Model使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类keras
的用法示例。
在下文中一共展示了keras.Model方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _save
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def _save(model, base_model, layers, labels, random_seed, checkpoints_dir):
from keras.layers import Flatten, Dense
from keras import Model
nclasses = len(labels)
x = Flatten()(base_model.output)
x = _makenet(x, layers, dropout=None, random_seed=random_seed)
predictions = Dense(nclasses, activation="softmax", name="predictions")(x)
model_final = Model(inputs=base_model.input, outputs=predictions)
for i in range(layers - 1):
weights = model.get_layer(name='dense_layer_{}'.format(i)).get_weights()
model_final.get_layer(name='dense_layer_{}'.format(i)).set_weights(weights)
weights = model.get_layer(name='predictions').get_weights()
model_final.get_layer(name='predictions').set_weights(weights)
model_final.save(os.path.join(checkpoints_dir, "model.h5"))
with open(os.path.join(checkpoints_dir, "labels.txt"), "w") as f:
f.write("\n".join(labels))
return model_final
示例2: get_custom_architecture
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def get_custom_architecture(name, trainings_dir, output_layer):
from keras.models import load_model, Model
name = name.lstrip("@")
model = load_model(os.path.join(trainings_dir, name, 'checkpoints', 'model.h5'))
try:
if isinstance(output_layer, int):
layer = model.layers[output_layer]
else:
layer = model.get_layer(output_layer)
except Exception:
if isinstance(output_layer, int):
raise VergeMLError(f'output-layer {output_layer} not found - model has only {len(model.layers)} layers.')
else:
candidates = list(map(lambda l: l.name, model.layers))
raise VergeMLError(f'output-layer named {output_layer} not found.',
suggestion=did_you_mean(candidates, output_layer))
model = Model(inputs=model.input, outputs=layer.output)
return model
示例3: load_openai_transformer
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def load_openai_transformer(path: str = './openai/model/', use_attn_mask: bool = True,
use_one_embedding_dropout: bool = False, max_len: int = 512) -> keras.Model:
with open(path + 'params_shapes.json') as f:
shapes = json.load(f)
offsets = np.cumsum([np.prod(shape) for shape in shapes])
init_params = [np.load(path + 'params_{}.npy'.format(n)) for n in range(10)]
init_params = np.split(np.concatenate(init_params, 0), offsets)[:-1]
init_params = [param.reshape(shape) for param, shape in zip(init_params, shapes)]
init_params[0] = init_params[0][:min(512, max_len)]
# add special token embedding to token embedding
init_params[1] = np.concatenate(
(init_params[1], np.random.randn(TextEncoder.SPECIAL_COUNT, 768).astype(np.float32) * 0.02), axis=0)
init_params = [np.zeros((TextEncoder.NUM_SEGMENTS, 768)).astype(np.float32)] + init_params # segment embedding
model = create_transformer(embedding_dim=768, embedding_dropout=0.1, vocab_size=40478,
max_len=min(512, max_len), use_attn_mask=use_attn_mask, trainable_pos_embedding=True,
num_heads=12, num_layers=12, use_one_embedding_dropout=use_one_embedding_dropout,
d_hid=4 * 768, attention_dropout=0.1, residual_dropout=0.1)
model.set_weights(init_params)
return model
示例4: create_transformer
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def create_transformer(embedding_dim: int = 768, embedding_dropout: float = 0.1,
vocab_size: int = 30000, max_len: int = 512,
trainable_pos_embedding: bool = True, num_heads: int = 12, num_layers: int = 12,
attention_dropout: float = 0.1, use_one_embedding_dropout: bool = False,
d_hid: int = 768 * 4, residual_dropout: float = 0.1,
use_attn_mask: bool = True) -> keras.Model:
vocab_size += TextEncoder.SPECIAL_COUNT
tokens = Input(batch_shape=(None, max_len), name='token_input', dtype='int32')
segment_ids = Input(batch_shape=(None, max_len), name='segment_input', dtype='int32')
pos_ids = Input(batch_shape=(None, max_len), name='position_input', dtype='int32')
attn_mask = Input(batch_shape=(None, 1, max_len, max_len), name='attention_mask_input',
dtype=K.floatx()) if use_attn_mask else None
inputs = [tokens, segment_ids, pos_ids]
embedding_layer = Embedding(embedding_dim, embedding_dropout, vocab_size, max_len, trainable_pos_embedding,
use_one_embedding_dropout)
x = embedding_layer(inputs)
for i in range(num_layers):
x = EncoderLayer(embedding_dim, num_heads, d_hid, residual_dropout,
attention_dropout, use_attn_mask, i)(x, attn_mask)
inputs = inputs + ([attn_mask] if use_attn_mask else [])
return keras.Model(inputs=inputs, outputs=x, name='Transformer')
示例5: create_transformer
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def create_transformer(embedding_dim: int = 768, embedding_dropout: float = 0.1, vocab_size: int = 30000,
max_len: int = 512, trainable_pos_embedding: bool = True, num_heads: int = 12,
num_layers: int = 12, attention_dropout: float = 0.1, use_one_embedding_dropout: bool = False,
d_hid: int = 768 * 4, residual_dropout: float = 0.1, use_attn_mask: bool = True,
embedding_layer_norm: bool = False, neg_inf: float = -1e9, layer_norm_epsilon: float = 1e-5,
accurate_gelu: bool = False) -> keras.Model:
vocab_size += TextEncoder.SPECIAL_COUNT
tokens = Input(batch_shape=(None, max_len), name='token_input', dtype='int32')
segment_ids = Input(batch_shape=(None, max_len), name='segment_input', dtype='int32')
pos_ids = Input(batch_shape=(None, max_len), name='position_input', dtype='int32')
attn_mask = Input(batch_shape=(None, 1, max_len, max_len), name='attention_mask_input',
dtype=K.floatx()) if use_attn_mask else None
inputs = [tokens, segment_ids, pos_ids]
embedding_layer = Embedding(embedding_dim, embedding_dropout, vocab_size, max_len, trainable_pos_embedding,
use_one_embedding_dropout, embedding_layer_norm, layer_norm_epsilon)
x = embedding_layer(inputs)
for i in range(num_layers):
x = EncoderLayer(embedding_dim, num_heads, d_hid, residual_dropout,
attention_dropout, use_attn_mask, i, neg_inf, layer_norm_epsilon, accurate_gelu)(x, attn_mask)
if use_attn_mask:
inputs.append(attn_mask)
return keras.Model(inputs=inputs, outputs=[x], name='Transformer')
示例6: build_model
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def build_model(self, input_shape, horizon, conditions_shape=None):
"""
Create a Model that takes as inputs:
- 3D tensor of shape tesor (batch_size, window_size, n_features)
- 3D Tensor of shape (batch_size, window_size, n_features)
and outputs:
- 2D tensor of shape (batch_size, 1) or (batch_size, horizon), depending on the value of
recursive_forecast.
:param input_shape: np.array
(window_size, n_features)
:param horizon: int
the forecasting horizon
:param conditions_shape: np.array
(horizon, n_features)
:return: a keras Model
"""
pass
示例7: build_model
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def build_model(self, input_shape, horizon):
"""
Create a Model that takes as inputs:
- 3D Tensor of shape (batch_size, window_size, n_features)
and outputs:
- 2D tensor of shape (batch_size, 1)
:param input_shape:
(window_size, n_features)
:param horizon: int
The forecasting horizon
:return: a keras Model
"""
self.horizon = horizon
if len(input_shape) < 2:
input_shape = (input_shape[0], 1)
inputs = Input(shape=input_shape, dtype='float32')
out_rnn = self.rnn(inputs) # [batch_size, hidden_state_length]
outputs = Dense(1, activation=None)(out_rnn) # [batch_size, 1]
self.model = Model(inputs=[inputs], outputs=[outputs])
self.model.summary()
return self.model
示例8: __init__
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def __init__(
self,
model: Model,
dataset,
noise_stepsize: float = 0.01,
batch_size: int = 31,
decay: float = 0,
):
super(KerasDNN, self).__init__()
self.model = model
self.dataset = dataset
self.batch_size = batch_size
self.noise_stepsize = noise_stepsize
self.noise_decay = decay
(self.X_train, self.y_train), (self.X_test, self.y_test) = dataset.load_data()
self.loss = None
self.metric = None
self.X = None
self.y = None
示例9: load_optimizer_weights
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def load_optimizer_weights(model: Model, model_save_path: str):
"""
Loads optimizer's weights for the model from an HDF5 file.
"""
with h5py.File(model_save_path, mode='r') as f:
if 'optimizer_weights' in f:
# Build train function (to get weight updates).
# noinspection PyProtectedMember
model._make_train_function()
optimizer_weights_group = f['optimizer_weights']
optimizer_weight_names = [
n.decode('utf8') for n in
optimizer_weights_group.attrs['weight_names']]
optimizer_weight_values = [
optimizer_weights_group[n]
for n in optimizer_weight_names]
try:
model.optimizer.set_weights(optimizer_weight_values)
except ValueError:
warnings.warn('Error in loading the saved optimizer '
'state. As a result, your model is '
'starting with a freshly initialized '
'optimizer.')
示例10: test_whole
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def test_whole(self):
# Create datatype
datatype = Categorical()
# Load observations
observations = lib.load_mushroom()
# Transform observations
mapper = DataFrameMapper([(['cap-shape'], datatype.default_transformation_pipeline)], df_out=True)
transformed_df = mapper.fit_transform(observations)
# Create network
input_layer, input_nub = datatype.input_nub_generator('cap-shape', transformed_df)
output_nub = datatype.output_nub_generator('cap-shape', transformed_df)
x = input_nub
x = output_nub(x)
model = Model(input_layer, x)
model.compile(optimizer='adam', loss=datatype.output_suggested_loss())
示例11: test_whole
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def test_whole(self):
datatype = Text()
# Load observations
observations = lib.load_titanic()
# Transform observations
mapper = DataFrameMapper([(['name'], datatype.default_transformation_pipeline),
(['fare'], None)], df_out=True)
transformed_df = mapper.fit_transform(observations)
# Create network
input_layer, input_nub = datatype.input_nub_generator('name', transformed_df)
output_nub = Dense(1)
x = input_nub
x = output_nub(x)
model = Model(input_layer, x)
model.compile(optimizer='adam', loss='mse')
pass
示例12: test_whole
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def test_whole(self):
# Create datatype
datatype = Numerical()
# Load observations
observations = lib.load_titanic()
# Transform observations
mapper = DataFrameMapper([(['fare'], datatype.default_transformation_pipeline)], df_out=True)
transformed_df = mapper.fit_transform(observations)
# Create network
input_layer, input_nub = datatype.input_nub_generator('fare', transformed_df)
output_nub = datatype.output_nub_generator('fare', transformed_df)
x = input_nub
x = output_nub(x)
model = Model(input_layer, x)
model.compile(optimizer='adam', loss=datatype.output_suggested_loss())
示例13: __build_model
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def __build_model(self, emb_matrix=None):
word_input = Input(shape=(None,), dtype='int32', name="word_input")
word_emb = Embedding(self.vocab_size + 1, self.embed_dim,
weights=[emb_matrix] if emb_matrix is not None else None,
trainable=True if emb_matrix is None else False,
name='word_emb')(word_input)
bilstm_output = Bidirectional(LSTM(self.bi_lstm_units // 2,
return_sequences=True))(word_emb)
bilstm_output = Dropout(self.dropout_rate)(bilstm_output)
output = Dense(self.chunk_size + 1, kernel_initializer="he_normal")(bilstm_output)
output = CRF(self.chunk_size + 1, sparse_target=self.sparse_target)(output)
model = Model([word_input], [output])
parallel_model = model
if self.num_gpu > 1:
parallel_model = multi_gpu_model(model, gpus=self.num_gpu)
parallel_model.compile(optimizer=self.optimizer, loss=crf_loss, metrics=[crf_accuracy])
return model, parallel_model
示例14: test_return_state
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def test_return_state():
input_size = 10
timesteps = 6
units = 2
num_samples = 32
for layer_class in [keras.layers.CuDNNGRU, keras.layers.CuDNNLSTM]:
num_states = 2 if layer_class is keras.layers.CuDNNLSTM else 1
inputs = keras.Input(batch_shape=(num_samples, timesteps, input_size))
layer = layer_class(units, return_state=True, stateful=True)
outputs = layer(inputs)
output, state = outputs[0], outputs[1:]
assert len(state) == num_states
model = keras.models.Model(inputs, state[0])
inputs = np.random.random((num_samples, timesteps, input_size))
state = model.predict(inputs)
np.testing.assert_allclose(
keras.backend.eval(layer.states[0]), state, atol=1e-4)
示例15: test_specify_initial_state_keras_tensor
# 需要导入模块: import keras [as 别名]
# 或者: from keras import Model [as 别名]
def test_specify_initial_state_keras_tensor():
input_size = 10
timesteps = 6
units = 2
num_samples = 32
for layer_class in [keras.layers.CuDNNGRU, keras.layers.CuDNNLSTM]:
num_states = 2 if layer_class is keras.layers.CuDNNLSTM else 1
inputs = keras.Input((timesteps, input_size))
initial_state = [keras.Input((units,)) for _ in range(num_states)]
layer = layer_class(units)
if len(initial_state) == 1:
output = layer(inputs, initial_state=initial_state[0])
else:
output = layer(inputs, initial_state=initial_state)
assert initial_state[0] in layer._inbound_nodes[0].input_tensors
model = keras.models.Model([inputs] + initial_state, output)
model.compile(loss='categorical_crossentropy', optimizer='adam')
inputs = np.random.random((num_samples, timesteps, input_size))
initial_state = [np.random.random((num_samples, units))
for _ in range(num_states)]
targets = np.random.random((num_samples, units))
model.fit([inputs] + initial_state, targets)