@@ -68,7 +68,7 @@ predict_sequence_length = 8
6868
6969model_name_or_path = ' seq2seq' # 'wavenet', 'transformer', 'rnn', 'tcn', 'bert', 'dlinear', 'nbeats', 'informer', 'autoformer'
7070config = AutoConfig.for_model(model_name_or_path)
71- model = AutoModelForForecasting.from_config(config, prediction_length = predict_sequence_length)
71+ model = AutoModelForForecasting.from_config(config, output_chunk_length = predict_sequence_length)
7272trainer = KerasTrainer(model)
7373trainer.train(
7474 (x_train, y_train),
@@ -80,7 +80,7 @@ trainer.train(
8080model_dir = " ./outputs/quickstart_forecasting"
8181trainer.save_model(model_dir)
8282restored_model = AutoModel.from_pretrained(model_dir, sample_batch = x_valid[:1 ])
83- pred = restored_model(x_valid, training = False ).numpy()
83+ pred = restored_model(x_valid, training = False ).predictions. numpy()
8484trainer.plot(history = x_valid, true = y_valid, pred = pred)
8585plt.show()
8686```
@@ -108,14 +108,14 @@ x_valid = np.random.rand(1, train_length, n_feature)
108108y_valid = np.random.rand(1 , predict_sequence_length, 1 )
109109
110110config = AutoConfig.for_model(" rnn" )
111- model = AutoModelForForecasting.from_config(config, prediction_length = predict_sequence_length)
111+ model = AutoModelForForecasting.from_config(config, output_chunk_length = predict_sequence_length)
112112trainer = KerasTrainer(model)
113113trainer.train(train_dataset = (x_train, y_train), valid_dataset = (x_valid, y_valid), epochs = 1 )
114114
115115model_dir = " ./outputs/encoder_only"
116116trainer.save_model(model_dir)
117117restored_model = AutoModel.from_pretrained(model_dir, sample_batch = x_valid[:1 ])
118- inference = restored_model(x_valid[:1 ], training = False ).numpy()
118+ inference = restored_model(x_valid[:1 ], training = False ).predictions. numpy()
119119print (inference.shape)
120120```
121121
@@ -145,14 +145,14 @@ x_valid = {
145145y_valid = np.random.rand(1 , predict_sequence_length, 1 )
146146
147147config = AutoConfig.for_model(" seq2seq" )
148- model = AutoModelForForecasting.from_config(config, prediction_length = predict_sequence_length)
148+ model = AutoModelForForecasting.from_config(config, output_chunk_length = predict_sequence_length)
149149trainer = KerasTrainer(model)
150150trainer.train((x_train, y_train), (x_valid, y_valid), epochs = 1 )
151151
152152model_dir = " ./outputs/encoder_decoder"
153153trainer.save_model(model_dir)
154154restored_model = AutoModel.from_pretrained(model_dir, sample_batch = x_valid)
155- inference = restored_model(x_valid, training = False ).numpy()
155+ inference = restored_model(x_valid, training = False ).predictions. numpy()
156156print (inference.shape)
157157```
158158
@@ -201,15 +201,15 @@ valid_loader = tf.data.Dataset.from_generator(
201201valid_loader = valid_loader.batch(batch_size = 1 )
202202
203203config = AutoConfig.for_model(" seq2seq" )
204- model = AutoModelForForecasting.from_config(config, prediction_length = predict_sequence_length)
204+ model = AutoModelForForecasting.from_config(config, output_chunk_length = predict_sequence_length)
205205trainer = KerasTrainer(model)
206206trainer.train(train_dataset = train_loader, valid_dataset = valid_loader, epochs = 1 )
207207
208208model_dir = " ./outputs/encoder_decoder_tfdata"
209209trainer.save_model(model_dir)
210210inference_inputs = next (iter (valid_loader.take(1 )))[0 ]
211211restored_model = AutoModel.from_pretrained(model_dir, sample_batch = inference_inputs)
212- inference = restored_model(inference_inputs, training = False ).numpy()
212+ inference = restored_model(inference_inputs, training = False ).predictions. numpy()
213213print (inference.shape)
214214```
215215
@@ -222,7 +222,7 @@ config = AutoConfig.for_model('rnn')
222222print (config)
223223config.rnn_hidden_size = 128
224224
225- model = AutoModelForForecasting.from_config(config, prediction_length = 7 )
225+ model = AutoModelForForecasting.from_config(config, output_chunk_length = 7 )
226226```
227227
228228** 搭建自己的模型**
@@ -252,12 +252,18 @@ num_train_features = 15
252252predict_sequence_length = 8
253253
254254def build_model ():
255- inputs = Input([train_length, num_train_features])
256- config = AutoConfig.for_model(" seq2seq" )
257- backbone = AutoBackbone.from_config(config, prediction_length = predict_sequence_length)
258- outputs = backbone(inputs)
259- outputs = Dense(1 , activation = " sigmoid" )(outputs)
260- model = tf.keras.Model(inputs = inputs, outputs = outputs)
255+ class CustomForecaster (tf .keras .Model ):
256+ def __init__ (self ):
257+ super ().__init__ ()
258+ config = AutoConfig.for_model(" seq2seq" )
259+ self .backbone = AutoBackbone.from_config(config, output_chunk_length = predict_sequence_length)
260+ self .projection = Dense(1 , activation = " sigmoid" )
261+
262+ def call (self , inputs , training = None ):
263+ output = self .backbone(inputs, training = training)
264+ return self .projection(output.native_forecast)
265+
266+ model = CustomForecaster()
261267 model.compile(loss = " mse" , optimizer = " rmsprop" )
262268 return model
263269```
0 commit comments