Skip to content

Commit 99dad6c

Browse files
AmberC0209zhangyubo0722
authored andcommitted
update install command (PaddlePaddle#544)
1 parent e163352 commit 99dad6c

File tree

4 files changed

+114
-41
lines changed

4 files changed

+114
-41
lines changed

docs/paddlex/quick_start.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ python -m pip install paddlepaddle-gpu==3.0.0b2 -i https://www.paddlepaddle.org.
2626
* **安装PaddleX**
2727

2828
```bash
29-
pip install https://paddle-model-ecology.bj.bcebos.com/paddlex/whl/paddlex-3.0.0b2-py3-none-any.whl
29+
pip install paddlex==3.0.0b2
3030
```
3131

3232
> ❗ 更多安装方式参考[PaddleX安装教程](https://paddlepaddle.github.io/PaddleX/latest/installation/installation.html)

paddlets/models/anomaly/dl/anomaly_base.py

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
from paddle.optimizer import Optimizer
1515
import numpy as np
16+
from packaging import version
1617
import paddle
1718

1819
from paddlets.models.common.callbacks import (
@@ -374,9 +375,10 @@ def apply_to_static(self, model):
374375
meta_data = self._build_meta()
375376
spec = build_network_input_spec(meta_data)
376377
model = paddle.jit.to_static(model, input_spec=spec)
377-
logger.info("Successfully to apply @to_static with specs: {}".format(spec))
378+
logger.info("Successfully to apply @to_static with specs: {}".format(
379+
spec))
378380
return model
379-
381+
380382
def fit(self,
381383
train_tsdataset: TSDataset,
382384
valid_tsdataset: Optional[TSDataset]=None,
@@ -426,13 +428,14 @@ def _fit(self,
426428
self._network = self._init_network()
427429
self._optimizer = self._init_optimizer()
428430
if self.use_amp:
429-
logger.info('use AMP to train. AMP level = {}'.format(self.amp_level))
431+
logger.info('use AMP to train. AMP level = {}'.format(
432+
self.amp_level))
430433
self.scaler = paddle.amp.GradScaler(init_loss_scaling=1024)
431434
if self.amp_level == 'O2':
432435
self._network, self._optimizer = paddle.amp.decorate(
433-
models=self._network,
434-
optimizers=self._optimizer,
435-
level='O2')
436+
models=self._network,
437+
optimizers=self._optimizer,
438+
level='O2')
436439
if to_static_train:
437440
self._network = self.apply_to_static(self._network)
438441

@@ -508,7 +511,7 @@ def _eval(self, tsdataset: TSDataset, **predict_kwargs) -> TSDataset:
508511
"elementwise_add", "batch_norm", "sync_batch_norm"
509512
},
510513
custom_black_list={'bilinear_interp_v2'}):
511-
514+
512515
y_pred, y_true = self._network(data)
513516
else:
514517
y_pred, y_true = self._network(data)
@@ -700,7 +703,7 @@ def _train_batch(self, X: Dict[str, paddle.Tensor]) -> Dict[str, Any]:
700703
y_pred, y_true = self._network(X)
701704
train_run_cost = time.time() - start_time
702705
loss = self._compute_loss(y_pred, y_true)
703-
scaled_loss = self.scaler.scale(loss)
706+
scaled_loss = self.scaler.scale(loss)
704707
scaled_loss.backward()
705708
self.scaler.step(self._optimizer) # update parameters
706709
self.scaler.update()
@@ -929,10 +932,33 @@ def save(self,
929932
if dygraph_to_static:
930933
layer = paddle.jit.to_static(
931934
self._network, input_spec=input_spec)
932-
paddle.jit.save(
933-
layer,
934-
os.path.join(abs_root_path,
935-
internal_filename_map["network_model"]))
935+
paddle_version = version.parse(paddle.__version__)
936+
if paddle_version >= version.parse(
937+
'3.0.0b2') or paddle_version == version.parse(
938+
'0.0.0'):
939+
for enable_pir in [True, False]:
940+
if not enable_pir:
941+
layer.forward.rollback()
942+
with paddle.pir_utils.OldIrGuard():
943+
layer = paddle.jit.to_static(
944+
self._network, input_spec=input_spec)
945+
paddle.jit.save(
946+
layer,
947+
os.path.join(abs_root_path,
948+
internal_filename_map[
949+
"network_model"]))
950+
else:
951+
paddle.jit.save(
952+
layer,
953+
os.path.join(
954+
abs_root_path,
955+
internal_filename_map["network_model"]))
956+
else:
957+
paddle.jit.save(
958+
layer,
959+
os.path.join(
960+
abs_root_path,
961+
internal_filename_map["network_model"]))
936962
else:
937963
paddle.jit.save(
938964
self._network,

paddlets/models/classify/dl/paddle_base.py

Lines changed: 47 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from sklearn.utils import check_random_state
1818
from paddlets.utils.utils import convert_and_remove_types
1919
import numpy as np
20+
from packaging import version
2021
import paddle
2122

2223
# from paddlets.models.utils import format_labels
@@ -146,8 +147,7 @@ def _check_params(self):
146147
if not self._eval_metrics:
147148
self._eval_metrics = ["acc"]
148149

149-
def _check_tsdatasets(self,
150-
tsdatasets: List[TSDataset],
150+
def _check_tsdatasets(self, tsdatasets: List[TSDataset],
151151
labels: np.ndarray):
152152
"""Ensure the robustness of input data (consistent feature order), at the same time,
153153
check whether the data types are compatible. If not, the processing logic is as follows.
@@ -215,8 +215,7 @@ def _init_optimizer(self) -> Optimizer:
215215

216216
else:
217217
return self._optimizer_fn(
218-
**self._optimizer_params,
219-
parameters=self._network.parameters())
218+
**self._optimizer_params, parameters=self._network.parameters())
220219

221220
def _init_fit_dataloaders(
222221
self,
@@ -261,8 +260,8 @@ def _init_fit_dataloaders(
261260
valid_tsdatasets, valid_labels,
262261
self._fit_params['input_lens'])
263262
else:
264-
valid_dataset = data_adapter.to_paddle_dataset(
265-
valid_tsdatasets, valid_labels)
263+
valid_dataset = data_adapter.to_paddle_dataset(valid_tsdatasets,
264+
valid_labels)
266265
valid_dataloader = data_adapter.to_paddle_dataloader(
267266
valid_dataset, self._batch_size, shuffle=False)
268267

@@ -284,8 +283,8 @@ def _init_predict_dataloader(
284283
tsdatasets = [tsdatasets]
285284
self._check_tsdatasets(tsdatasets, labels)
286285
data_adapter = ClassifyDataAdapter()
287-
dataset = data_adapter.to_paddle_dataset(
288-
tsdatasets, labels, self._fit_params['input_lens'])
286+
dataset = data_adapter.to_paddle_dataset(tsdatasets, labels,
287+
self._fit_params['input_lens'])
289288
dataloader = data_adapter.to_paddle_dataloader(
290289
dataset, self._batch_size, shuffle=False)
291290
return dataloader
@@ -350,9 +349,10 @@ def apply_to_static(self, model):
350349
meta_data = self._build_meta()
351350
spec = build_network_input_spec(meta_data)
352351
model = paddle.jit.to_static(model, input_spec=spec)
353-
logger.info("Successfully to apply @to_static with specs: {}".format(spec))
352+
logger.info("Successfully to apply @to_static with specs: {}".format(
353+
spec))
354354
return model
355-
355+
356356
def fit(self,
357357
train_tsdatasets: List[TSDataset],
358358
train_labels: np.ndarray,
@@ -394,17 +394,18 @@ def _fit(self,
394394
self._history, self._callback_container = self._init_callbacks()
395395
self._network = self._init_network()
396396
self._optimizer = self._init_optimizer()
397-
if self.use_amp :
398-
logger.info('use AMP to train. AMP level = {}'.format(self.amp_level))
397+
if self.use_amp:
398+
logger.info('use AMP to train. AMP level = {}'.format(
399+
self.amp_level))
399400
self.scaler = paddle.amp.GradScaler(init_loss_scaling=1024)
400401
if self.amp_level == 'O2':
401402
self._network, self._optimizer = paddle.amp.decorate(
402-
models=self._network,
403-
optimizers=self._optimizer,
404-
level='O2')
403+
models=self._network,
404+
optimizers=self._optimizer,
405+
level='O2')
405406
if to_static_train:
406407
self._network = self.apply_to_static(self._network)
407-
408+
408409
check_random_state(self._seed)
409410

410411
# Call the `on_train_begin` method of each callback before the training starts.
@@ -447,8 +448,7 @@ def predict(
447448
# np.save('probs',probs)
448449
rng = check_random_state(self._seed)
449450
return np.array([
450-
self._classes_[int(
451-
rng.choice(np.flatnonzero(prob == prob.max())))]
451+
self._classes_[int(rng.choice(np.flatnonzero(prob == prob.max())))]
452452
for prob in probs
453453
])
454454

@@ -548,7 +548,7 @@ def _train_batch(self, X: Dict[str, paddle.Tensor],
548548
output = self._network(X)
549549
train_run_cost = time.time() - start_time
550550
loss = self._compute_loss(output, y)
551-
scaled_loss = self.scaler.scale(loss)
551+
scaled_loss = self.scaler.scale(loss)
552552
scaled_loss.backward()
553553
self.scaler.step(self._optimizer) # update parameters
554554
self.scaler.update()
@@ -559,7 +559,7 @@ def _train_batch(self, X: Dict[str, paddle.Tensor],
559559
"loss": loss.item(),
560560
"train_run_cost": train_run_cost
561561
}
562-
562+
563563
else:
564564
output = self._network(X)
565565
train_run_cost = time.time() - start_time
@@ -769,10 +769,33 @@ def save(self,
769769
if dygraph_to_static:
770770
layer = paddle.jit.to_static(
771771
self._network, input_spec=input_spec)
772-
paddle.jit.save(
773-
layer,
774-
os.path.join(abs_root_path,
775-
internal_filename_map["network_model"]))
772+
paddle_version = version.parse(paddle.__version__)
773+
if paddle_version >= version.parse(
774+
'3.0.0b2') or paddle_version == version.parse(
775+
'0.0.0'):
776+
for enable_pir in [True, False]:
777+
if not enable_pir:
778+
layer.forward.rollback()
779+
with paddle.pir_utils.OldIrGuard():
780+
layer = paddle.jit.to_static(
781+
self._network, input_spec=input_spec)
782+
paddle.jit.save(
783+
layer,
784+
os.path.join(abs_root_path,
785+
internal_filename_map[
786+
"network_model"]))
787+
else:
788+
paddle.jit.save(
789+
layer,
790+
os.path.join(
791+
abs_root_path,
792+
internal_filename_map["network_model"]))
793+
else:
794+
paddle.jit.save(
795+
layer,
796+
os.path.join(
797+
abs_root_path,
798+
internal_filename_map["network_model"]))
776799
else:
777800
paddle.jit.save(
778801
self._network,

paddlets/models/forecasting/dl/paddle_base.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import paddle
1313
import abc
1414
from typing import Optional, List, Union
15+
from packaging import version
1516
import json
1617
import yaml
1718

@@ -178,10 +179,33 @@ def save(self,
178179
if dygraph_to_static:
179180
layer = paddle.jit.to_static(
180181
self._network, input_spec=input_spec)
181-
paddle.jit.save(
182-
layer,
183-
os.path.join(abs_root_path,
184-
internal_filename_map["network_model"]))
182+
paddle_version = version.parse(paddle.__version__)
183+
if paddle_version >= version.parse(
184+
'3.0.0b2') or paddle_version == version.parse(
185+
'0.0.0'):
186+
for enable_pir in [False, True]:
187+
if not enable_pir:
188+
layer.forward.rollback()
189+
with paddle.pir_utils.OldIrGuard():
190+
layer = paddle.jit.to_static(
191+
self._network, input_spec=input_spec)
192+
paddle.jit.save(
193+
layer,
194+
os.path.join(abs_root_path,
195+
internal_filename_map[
196+
"network_model"]))
197+
else:
198+
paddle.jit.save(
199+
layer,
200+
os.path.join(
201+
abs_root_path,
202+
internal_filename_map["network_model"]))
203+
else:
204+
paddle.jit.save(
205+
layer,
206+
os.path.join(
207+
abs_root_path,
208+
internal_filename_map["network_model"]))
185209
else:
186210
paddle.jit.save(
187211
self._network,

0 commit comments

Comments
 (0)