Logo Zephyrnet

Triển khai kiểm tra với TensorFlow cho Amazon SageMaker Managed Spot Training

Ngày:

Khách hàng thường hỏi chúng tôi làm cách nào để giảm chi phí khi tiến hành đào tạo deep learning trên AWS. Đào tạo các mô hình deep learning với các thư viện như TensorFlow, Kim tự thápApache MX Net thường yêu cầu quyền truy cập vào Phiên bản GPU, là loại phiên bản AWS cung cấp quyền truy cập vào GPU NVIDIA với hàng nghìn lõi điện toán. Các loại phiên bản GPU có thể đắt hơn các loại khác Đám mây điện toán đàn hồi Amazon (Amazon EC2), do đó, việc tối ưu hóa việc sử dụng các loại phiên bản này là ưu tiên hàng đầu của khách hàng cũng như biện pháp thực hành tốt nhất tổng thể cho khối lượng công việc có kiến ​​trúc hợp lý.

Amazon SageMaker là một dịch vụ được quản lý hoàn toàn, cung cấp cho mọi nhà phát triển và nhà khoa học dữ liệu khả năng chuẩn bị, xây dựng, đào tạo và triển khai các mô hình học máy (ML) một cách nhanh chóng. SageMaker loại bỏ gánh nặng khỏi mỗi bước của quy trình ML để giúp phát triển các mô hình chất lượng cao dễ dàng hơn. SageMaker cung cấp tất cả các thành phần được sử dụng cho ML trong một bộ công cụ duy nhất để các mô hình được đưa vào sản xuất nhanh hơn với ít nỗ lực hơn và với chi phí thấp hơn.

Phiên bản Spot Amazon EC2 cung cấp công suất điện toán dự phòng có sẵn trên Đám mây AWS với mức chiết khấu cao so với giá Theo yêu cầu. Amazon EC2 có thể làm gián đoạn Phiên bản dùng ngay với thông báo dài 2 phút khi dịch vụ cần khôi phục dung lượng. Bạn có thể sử dụng Phiên bản dùng ngay cho nhiều ứng dụng linh hoạt và có khả năng chịu lỗi khác nhau. Một số ví dụ là phân tích, khối lượng công việc được chứa trong bộ chứa, máy chủ web không trạng thái, CI/CD, đào tạo và suy luận về mô hình ML cũng như các khối lượng công việc thử nghiệm và phát triển khác. Giá Phiên bản dùng ngay giúp GPU hiệu suất cao có giá cả phải chăng hơn nhiều đối với các nhà nghiên cứu và nhà phát triển deep learning thực hiện các công việc đào tạo.

Một trong những lợi ích chính của SageMaker là nó giúp bạn thoát khỏi mọi quyền quản lý cơ sở hạ tầng, bất kể bạn đang làm việc ở quy mô nào. Ví dụ: thay vì phải thiết lập và quản lý các cụm đào tạo phức tạp, bạn chỉ cần cho SageMaker biết nên sử dụng loại phiên bản EC2 nào và số lượng phiên bản bạn cần. Sau đó, các phiên bản thích hợp sẽ được tạo theo yêu cầu, được định cấu hình và tự động dừng khi công việc đào tạo hoàn tất. BẰNG Khách hàng của SageMaker đã nhanh chóng hiểu ra, điều này có nghĩa là họ chỉ trả tiền cho những gì họ sử dụng. Việc xây dựng, đào tạo và triển khai các mô hình ML được tính phí theo giây, không có mức phí tối thiểu và không có cam kết trả trước. SageMaker cũng có thể sử dụng Phiên bản dùng ngay EC2 cho công việc đào tạo, giúp tối ưu hóa chi phí điện toán dùng để đào tạo các mô hình deep learning.

Trong bài đăng này, chúng tôi hướng dẫn quy trình đào tạo mô hình TensorFlow với Đào tạo tại chỗ được quản lý trong SageMaker. Chúng tôi hướng dẫn các bước cần thiết để thiết lập và chạy công việc đào tạo giúp tiết kiệm tiến độ đào tạo trong Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và khởi động lại công việc đào tạo từ điểm kiểm tra cuối cùng nếu phiên bản EC2 bị gián đoạn. Điều này cho phép công việc đào tạo của chúng tôi tiếp tục từ cùng một điểm trước khi xảy ra gián đoạn. Cuối cùng, chúng tôi thấy được mức tiết kiệm mà chúng tôi đạt được khi thực hiện công việc đào tạo trên Phiên bản Spot bằng cách sử dụng Đào tạo tại chỗ được quản lý trong SageMaker.

Đào tạo tại chỗ được quản lý trong SageMaker

SageMaker giúp dễ dàng huấn luyện các mô hình ML bằng cách sử dụng Phiên bản dùng ngay EC2 được quản lý. Đào tạo tại chỗ được quản lý có thể tối ưu hóa chi phí của các mô hình đào tạo lên tới 90% so với Phiên bản theo yêu cầu. Chỉ với một vài dòng mã, SageMaker có thể thay mặt bạn quản lý các gián đoạn Spot.

Đào tạo tại chỗ được quản lý sử dụng Phiên bản dùng ngay EC2 để chạy công việc đào tạo thay vì Phiên bản theo yêu cầu. Bạn có thể chỉ định công việc đào tạo nào sử dụng Phiên bản Spot và điều kiện dừng chỉ định khoảng thời gian SageMaker chờ công việc đào tạo hoàn thành bằng cách sử dụng Phiên bản Spot EC2. Số liệu và nhật ký được tạo trong quá trình đào tạo có sẵn ở amazoncloudwatch.

Đào tạo tại chỗ được quản lý có sẵn ở tất cả các cấu hình đào tạo:

  • Tất cả các loại phiên bản được SageMaker hỗ trợ
  • Tất cả các mẫu: tích hợp thuật toán, được xây dựng trong khungvà tùy chỉnh mô hình
  • Tất cả các cấu hình: đào tạo phiên bản đơn và đào tạo phân tán

Gián đoạn và điểm kiểm tra

Có một sự khác biệt quan trọng khi làm việc với Managed Spot Training. Không giống như các Phiên bản theo yêu cầu dự kiến ​​sẽ có sẵn cho đến khi công việc đào tạo hoàn tất, Phiên bản Spot có thể được thu hồi bất kỳ lúc nào Amazon EC2 cần lấy lại công suất.

SageMaker, với tư cách là một dịch vụ được quản lý hoàn toàn, tự động xử lý vòng đời của Phiên bản Spot. Nó làm gián đoạn công việc đào tạo, cố gắng lấy lại Phiên bản Spot và khởi động lại hoặc tiếp tục công việc đào tạo.

Để tránh bắt đầu lại công việc đào tạo từ đầu nếu nó bị gián đoạn, chúng tôi thực sự khuyên bạn nên triển khai kiểm tra, một kỹ thuật lưu mô hình trong quá trình đào tạo theo các khoảng thời gian định kỳ. Khi sử dụng điểm kiểm tra, bạn có thể tiếp tục công việc đào tạo từ một thời điểm được xác định rõ ràng, tiếp tục từ mô hình được đào tạo một phần gần đây nhất và tránh bắt đầu lại từ đầu và lãng phí thời gian cũng như tiền bạc tính toán.

Để triển khai tính năng kiểm tra điểm, chúng tôi phải phân biệt loại thuật toán bạn sử dụng:

  • Các khung tích hợp và mô hình tùy chỉnh – Bạn có toàn quyền kiểm soát mã đào tạo. Chỉ cần đảm bảo rằng bạn sử dụng các API thích hợp để lưu điểm kiểm tra mô hình vào Amazon S3 thường xuyên, sử dụng vị trí bạn đã xác định trong CheckpointConfig tham số và được chuyển đến SageMaker Estimator. TensorFlow sử dụng điểm kiểm tra theo mặc định. Đối với các khuôn khổ khác, hãy xem sổ tay mẫuSử dụng Machine Learning Frameworks, Python và R với Amazon SageMaker.
  • Các thuật toán tích hợp – Thuật toán thị giác máy tính hỗ trợ kiểm tra điểm (phát hiện đối tượng, phân đoạn ngữ nghĩaphân loại hình ảnh). Bởi vì chúng có xu hướng đào tạo trên các tập dữ liệu lớn và chạy lâu hơn các thuật toán khác nên chúng có khả năng bị gián đoạn cao hơn. Các XGBoost thuật toán tích hợp cũng hỗ trợ điểm kiểm tra.

Mô hình phân loại hình ảnh TensorFlow với Managed Spot Training

Để minh họa quá trình đào tạo tại chỗ được quản lý và điểm kiểm tra, tôi sẽ hướng dẫn bạn các bước cần thiết để đào tạo mô hình phân loại hình ảnh TensorFlow. Để đảm bảo rằng tập lệnh đào tạo của bạn có thể tận dụng Chương trình đào tạo tại chỗ được quản lý của SageMaker, chúng tôi cần triển khai những điều sau:

  • Thường xuyên lưu điểm kiểm tra, từ đó lưu điểm kiểm tra mỗi kỷ nguyên
  • Khả năng tiếp tục đào tạo từ các điểm kiểm tra nếu có điểm kiểm tra

Lưu điểm kiểm tra

SageMaker tự động sao lưu và đồng bộ hóa các tệp điểm kiểm tra do tập lệnh đào tạo của bạn tạo ra với Amazon S3. Do đó, bạn cần đảm bảo rằng tập lệnh đào tạo của bạn lưu các điểm kiểm tra vào thư mục điểm kiểm tra cục bộ trên bộ chứa Docker đang chạy chương trình đào tạo. Vị trí mặc định để lưu các tập tin điểm kiểm tra là /opt/ml/checkpointsvà SageMaker đồng bộ hóa các tệp này với bộ chứa S3 cụ thể. Cả vị trí điểm kiểm tra cục bộ và S3 đều có thể tùy chỉnh.

Lưu điểm kiểm tra bằng Keras rất dễ dàng. Bạn cần tạo một thể hiện của ModelCheckpoint lớp gọi lại và đăng ký nó với mô hình bằng cách chuyển nó tới lớp fit() chức năng.

Bạn có thể tìm thấy mã triển khai đầy đủ trên Repo GitHub.

Sau đây là mã có liên quan:

callbacks = []
callbacks.append(ModelCheckpoint(args.checkpoint_path + '/checkpoint-{epoch}.h5')) logging.info("Starting training from epoch: {}".format(initial_epoch_number+1)) model.fit(x=train_dataset[0], y=train_dataset[1], steps_per_epoch=(num_examples_per_epoch('train') epochs=args.epochs, initial_epoch=initial_epoch_number, validation_data=validation_dataset, validation_steps=(num_examples_per_epoch('validation') callbacks=callbacks) 

Tên của các tệp điểm kiểm tra được lưu như sau: checkpoint-1.h5, checkpoint-2.h5, checkpoint-3.h5, Và như vậy.

Đối với bài đăng này, tôi đang vượt qua initial_epoch, mà bạn thường không đặt. Điều này cho phép chúng tôi tiếp tục đào tạo từ một số kỷ nguyên nhất định và rất hữu ích khi bạn đã có tệp điểm kiểm tra.

Đường dẫn điểm kiểm tra có thể định cấu hình được vì chúng tôi lấy nó từ args.checkpoint_path trong main chức năng:

if __name__ == '__main__': parser = argparse.ArgumentParser() ... parser.add_argument("--checkpoint-path",type=str,default="/opt/ml/checkpoints",help="Path where checkpoints will be saved.") ... args = parser.parse_args()

Tiếp tục đào tạo từ các tập tin điểm kiểm tra

Khi công suất Spot khả dụng trở lại sau khi Spot bị gián đoạn, SageMaker sẽ khởi chạy Phiên bản Spot mới, khởi tạo vùng chứa Docker bằng tập lệnh huấn luyện của bạn, sao chép tập dữ liệu và tệp điểm kiểm tra từ Amazon S3 sang vùng chứa và chạy tập lệnh huấn luyện của bạn.

Tập lệnh của bạn cần triển khai việc tiếp tục quá trình đào tạo từ các tệp điểm kiểm tra, nếu không tập lệnh đào tạo của bạn sẽ bắt đầu lại quá trình đào tạo từ đầu. Bạn có thể triển khai một load_model_from_checkpoints chức năng như được hiển thị trong đoạn mã sau. Nó lấy đường dẫn tệp điểm kiểm tra cục bộ (/opt/ml/checkpoints là mặc định) và trả về một mô hình được tải từ điểm kiểm tra mới nhất và số kỷ nguyên liên quan.

Bạn có thể tìm thấy mã triển khai đầy đủ trên Repo GitHub.

Sau đây là mã có liên quan:

def load_model_from_checkpoints(checkpoint_path): checkpoint_files = [file for file in os.listdir(checkpoint_path) if file.endswith('.' + 'h5')] logging.info('--------------------------------------------') logging.info("Available checkpoint files: {}".format(checkpoint_files)) epoch_numbers = [re.search('(.*[0-9])(?=.)',file).group() for file in checkpoint_files] max_epoch_number = max(epoch_numbers) max_epoch_index = epoch_numbers.index(max_epoch_number) max_epoch_filename = checkpoint_files[max_epoch_index] logging.info('Latest epoch checkpoint file name: {}'.format(max_epoch_filename)) logging.info('Resuming training from epoch: {}'.format(int(max_epoch_number)+1)) logging.info('---------------------------------------------') resumed_model_from_checkpoints = load_model(f'{checkpoint_path}/{max_epoch_filename}') return resumed_model_from_checkpoints, int(max_epoch_number)

Đào tạo tại chỗ được quản lý bằng công cụ ước tính TensorFlow

Bạn có thể khởi chạy các công việc đào tạo SageMaker từ máy tính xách tay, máy tính để bàn, phiên bản EC2 hoặc phiên bản máy tính xách tay SageMaker. Đảm bảo bạn đã cài đặt SageMaker Python SDK và có quyền người dùng phù hợp để chạy các công việc đào tạo của SageMaker.

Để chạy công việc Managed Spot Training, bạn cần chỉ định một số tùy chọn bổ sung cho SageMaker tiêu chuẩn của mình Estimator hàm gọi:

  • use_spot_instances – Chỉ định xem có sử dụng SageMaker Managed Spot Training cho đào tạo hay không. Nếu được bật, bạn cũng nên đặt train_max_wait nhóm lý luận tự động (ARG).
  • max_wait – Thời gian chờ tính bằng giây cho các phiên huấn luyện Spot (mặc định: None). Sau khoảng thời gian này, SageMaker sẽ ngừng chờ Phiên bản Spot có sẵn hoặc công việc đào tạo kết thúc. Từ những lần chạy trước, tôi biết rằng công việc huấn luyện sẽ kết thúc sau 4 phút nên tôi đặt thành 600 giây.
  • max_run – Thời gian chờ tính bằng giây để luyện tập (mặc định: 24 * 60 * 60). Sau khoảng thời gian này, SageMaker sẽ dừng công việc bất kể trạng thái hiện tại của nó như thế nào. Tôi sẵn sàng dành gấp đôi thời gian đào tạo với chế độ Theo yêu cầu, vì vậy tôi chỉ định tổng thời gian đào tạo là 20 phút bằng cách sử dụng Spot.
  • trạm kiểm soát_s3_uri – URI S3 để duy trì các điểm kiểm tra mà thuật toán vẫn tồn tại (nếu có) trong quá trình đào tạo.

Bạn có thể tìm thấy mã triển khai đầy đủ trên Repo GitHub.

Sau đây là mã có liên quan:

use_spot_instances = True
max_run=600
max_wait = 1200 checkpoint_suffix = str(uuid.uuid4())[:8]
checkpoint_s3_uri = 's3://{}/checkpoint-{}'.format(bucket, checkpoint_suffix)
hyperparameters = {'epochs': 5, 'batch-size': 256} spot_estimator = TensorFlow(entry_point='cifar10_keras_main.py', source_dir='source_dir', metric_definitions=metric_definitions, hyperparameters=hyperparameters, role=role, framework_version='1.15.2', py_version='py3', instance_count=1, instance_type='ml.p3.2xlarge', base_job_name='cifar10-tf-spot-1st-run', tags=tags, checkpoint_s3_uri=checkpoint_s3_uri, use_spot_instances=use_spot_instances, max_run=max_run, max_wait=max_wait)

Đó là tất cả những thay đổi bạn cần thực hiện để giảm đáng kể chi phí đào tạo ML.

Để theo dõi công việc đào tạo của bạn và xem số tiền tiết kiệm được, bạn có thể xem nhật ký trên sổ ghi chép Jupyter của mình.

Khi kết thúc công việc, bạn sẽ thấy hai dòng đầu ra:

  • Số giây luyện tập: X – Thời gian tính toán thực tế mà công việc đào tạo của bạn đã sử dụng
  • Số giây tính phí: Y – Thời gian bạn được tính phí sau khi áp dụng chiết khấu Spot.

Nếu bạn đã bật use_spot_instances, bạn sẽ thấy sự khác biệt đáng chú ý giữa X và Y, biểu thị mức tiết kiệm chi phí mà bạn nhận được khi sử dụng Managed Spot Training. Điều này được phản ánh trong một dòng bổ sung:

  • Tiết kiệm đào tạo tại chỗ được quản lý – Tính bằng (1-Y/X)*100 %

Ảnh chụp màn hình sau đây hiển thị nhật ký đầu ra cho Máy tính xách tay Jupyter:

Khi quá trình đào tạo hoàn tất, bạn cũng có thể điều hướng đến Công việc đào tạo trên bảng điều khiển SageMaker và chọn công việc đào tạo của bạn để xem bạn đã tiết kiệm được bao nhiêu.

Đối với ví dụ đào tạo mô hình bằng TensorFlow này, công việc đào tạo của tôi chạy trong 144 giây nhưng tôi chỉ bị tính phí trong 43 giây, vì vậy, đối với khóa đào tạo 5 kỷ nguyên trên phiên bản GPU ml.p3.2xlarge, tôi đã có thể tiết kiệm 70% chi phí đào tạo!

Xác nhận rằng điểm kiểm tra và khôi phục hoạt động khi công việc đào tạo của bạn bị gián đoạn

Làm cách nào bạn có thể kiểm tra xem liệu công việc đào tạo của bạn có tiếp tục bình thường hay không nếu xảy ra Gián đoạn tại chỗ?

Nếu đã quen với việc chạy Phiên bản dùng ngay EC2 thì bạn biết rằng bạn có thể mô phỏng hành vi ứng dụng của mình trong thời gian Gián đoạn dùng ngay bằng cách làm theo các phương pháp hay nhất được đề xuất. Tuy nhiên, vì SageMaker là một dịch vụ được quản lý và thay mặt bạn quản lý vòng đời của phiên bản EC2 nên bạn không thể dừng phiên bản đào tạo SageMaker theo cách thủ công. Lựa chọn duy nhất của bạn là dừng toàn bộ công việc đào tạo.

Bạn vẫn có thể kiểm tra hành vi của mã khi tiếp tục quá trình đào tạo chưa hoàn chỉnh bằng cách chạy một công việc đào tạo ngắn hơn, sau đó sử dụng các điểm kiểm tra xuất ra từ công việc đào tạo đó làm đầu vào cho công việc đào tạo dài hơn. Để thực hiện việc này, trước tiên hãy chạy công việc Đào tạo tại chỗ được quản lý của SageMaker cho số lượng kỷ nguyên được chỉ định như được mô tả trong phần trước. Giả sử bạn tiến hành đào tạo trong năm kỷ nguyên. SageMaker lẽ ra đã sao lưu các tệp điểm kiểm tra của bạn vào vị trí S3 được chỉ định trong năm kỷ nguyên.

Bạn có thể điều hướng đến trang chi tiết công việc đào tạo trên bảng điều khiển SageMaker để xem đường dẫn đầu ra S3 của cấu hình điểm kiểm tra.

Chọn liên kết đường dẫn đầu ra S3 để điều hướng đến bộ chứa S3 điểm kiểm tra và xác minh rằng năm tệp điểm kiểm tra có sẵn ở đó.

Bây giờ hãy chạy đợt huấn luyện thứ hai với 10 kỷ nguyên. Bạn nên cung cấp vị trí điểm kiểm tra của công việc đầu tiên cho checkpoint_s3_uri để công việc đào tạo có thể sử dụng các điểm kiểm tra đó làm đầu vào cho công việc đào tạo thứ hai.

Bạn có thể tìm thấy mã triển khai đầy đủ trong Repo GitHub.

Sau đây là mã có liên quan:

hyperparameters = {'epochs': 10, 'batch-size': 256} spot_estimator = TensorFlow(entry_point='cifar10_keras_main.py', source_dir='source_dir', metric_definitions=metric_definitions, hyperparameters=hyperparameters, role=role, framework_version='1.15.2', py_version='py3', instance_count=1, instance_type='ml.p3.2xlarge', base_job_name='cifar10-tf-spot-2nd-run', tags=tags, checkpoint_s3_uri=checkpoint_s3_uri, use_spot_instances=use_spot_instances, max_run=max_run, max_wait=max_wait)

Bằng cách cung cấp checkpoint_s3_uri với các điểm kiểm tra của công việc trước đó, bạn đang yêu cầu SageMaker sao chép các điểm kiểm tra đó vào vùng chứa công việc mới của bạn. Sau đó, tập lệnh đào tạo của bạn sẽ tải điểm kiểm tra mới nhất và tiếp tục quá trình đào tạo. Ảnh chụp màn hình sau đây cho thấy quá trình đào tạo sẽ tiếp tục từ kỷ nguyên thứ sáu.

Để xác nhận rằng tất cả các tệp điểm kiểm tra đã được tạo, hãy điều hướng đến cùng một bộ chứa S3. Lần này bạn có thể thấy có 10 tệp điểm kiểm tra.

Sự khác biệt chính giữa việc mô phỏng gián đoạn theo cách này và cách SageMaker quản lý gián đoạn là bạn đang tạo một công việc đào tạo mới để kiểm tra mã của mình. Trong trường hợp Gián đoạn tại chỗ, SageMaker chỉ tiếp tục lại công việc bị gián đoạn hiện tại.

Triển khai tính năng kiểm tra điểm với chế độ tập lệnh và tích hợp PyTorch, MXNet và XGBoost

Các bước được hiển thị trong ví dụ về TensorFlow về cơ bản là giống nhau đối với PyTorch và MXNet. Mã để lưu điểm kiểm tra và tải chúng để tiếp tục đào tạo là khác nhau.

Bạn có thể xem các ví dụ đầy đủ về chế độ tập lệnh và tích hợp TensorFlow 1.x/2.x, PyTorch, MXNet và XGBoost trong Repo GitHub.

Kết luận và các bước tiếp theo

Trong bài đăng này, chúng tôi đã đào tạo mô hình phân loại hình ảnh TensorFlow bằng cách sử dụng SageMaker Managed Spot Training. Chúng tôi đã lưu cục bộ các điểm kiểm tra trong vùng chứa và tải các điểm kiểm tra để tiếp tục đào tạo nếu chúng tồn tại. SageMaker đảm nhiệm việc đồng bộ hóa các điểm kiểm tra với Amazon S3 và vùng chứa đào tạo. Chúng tôi đã mô phỏng sự gián đoạn Spot được quản lý bằng cách chạy Đào tạo tại chỗ được quản lý với 5 kỷ nguyên, sau đó chạy Công việc đào tạo tại chỗ được quản lý thứ hai với 10 kỷ nguyên, định cấu hình bộ chứa S3 của điểm kiểm tra của công việc trước đó. Điều này dẫn đến công việc đào tạo tải các điểm kiểm tra được lưu trữ trong Amazon S3 và tiếp tục lại từ kỷ nguyên thứ sáu.

Thật dễ dàng để tiết kiệm chi phí đào tạo với SageMaker Managed Spot Training. Với những thay đổi mã tối thiểu, bạn cũng có thể tiết kiệm hơn 70% khi đào tạo các mô hình học sâu của mình.

Bước tiếp theo, hãy thử sửa đổi tập lệnh TensorFlow, PyTorch hoặc MXNet của riêng bạn để triển khai tính năng kiểm tra, sau đó chạy Đào tạo tại chỗ được quản lý trong SageMaker để biết rằng các tệp điểm kiểm tra được tạo trong nhóm S3 mà bạn đã chỉ định. Hãy cho chúng tôi biết bạn làm như thế nào trong phần bình luận!


Lưu ý

Eitan Sela là Kiến trúc sư giải pháp của Amazon Web Services. Anh làm việc với khách hàng của AWS để cung cấp hướng dẫn và hỗ trợ kỹ thuật, giúp họ nâng cao giá trị của các giải pháp khi sử dụng AWS. Eitan cũng giúp khách hàng xây dựng và vận hành các giải pháp machine learning trên AWS. Trong thời gian rảnh rỗi, Eitan thích chạy bộ và đọc các bài báo mới nhất về máy học.

Coinsmart. Đặt cạnh Bitcoin-Börse ở Europa
Nguồn: https://aws.amazon.com/blogs/machine-learning/implement-checkpointing-with-tensorflow-for-amazon-sagemaker-managed-spot-training/

tại chỗ_img

Tin tức mới nhất

tại chỗ_img