DEV Community

ali zaenal
ali zaenal

Posted on

Complete Get started with tensorflow-metal in bahasa Indonesia.

Requirements

  • Mac computers with Apple silicon or AMD GPUs
  • macOS 12.0 or later (Get the latest beta)
  • Python 3.9 or later
  • Xcode command-line tools: xcode-select --install

requirement ditulis pada april 2025 untuk info terbaru kunjungi tautan resmi apple developer

Instalasi awal tensorflow-metal

Untuk instalasi awal silahkan kunjungi dan ikuti arahan dari web resmi untuk mendapatkan informasi terbaru melalui link berikut : https://developer.apple.com/metal/tensorflow-plugin/ .

Pastikan anda menyelesaikan tahap tersebut untuk kemudian lanjut ke tahap selanjutnya pada artikel ini.

Penggunaan awal pada environment python

Pengecekan awal

Di terminal dalam virtual‑env yang Anda buat:
masuk ke python menggunakan terminal favorit anda dengan menjalankan command berikut :

python
Enter fullscreen mode Exit fullscreen mode

setelahnya langsung masukan command berikut kemudian tekan return/enter :

python -m pip list | grep tensorflow
Enter fullscreen mode Exit fullscreen mode

ekspektasi yang seharusnya :

tensorflow                   2.19.0
tensorflow-io-gcs-filesystem 0.37.1
tensorflow-macos             2.16.2
tensorflow-metal             1.2.0
Enter fullscreen mode Exit fullscreen mode

pastikan tensorflow dan tensorflow-metal telah terinstall dan terdeteksi dengan baik.

Jika anda mengalami kendala anda dapat lakukan instalasi singkat melalui :

python -m pip install -U tensorflow tensorflow-metal
Enter fullscreen mode Exit fullscreen mode

lalu ulangi step awal melakukan pengecekan sebelumnya.

Jika sudah benar dan sesuai
buka terminal favorit anda dan ikuti insturksi berikut :

masuk ke python :

python
Enter fullscreen mode Exit fullscreen mode
import tensorflow as tf

from tensorflow.python.client import device_lib

tf.debugging.set_log_device_placement(True)



print(device_lib.list_local_devices())



print("Number GPUs Available: ",

len(tf.config.experimental.list_physical_devices('GPU')))
Enter fullscreen mode Exit fullscreen mode

seharusnya akan menampilkan output sebagai berikut :

Python 3.9.6 (default, Nov 11 2024, 03:15:38) 
[Clang 16.0.0 (clang-1600.0.26.6)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
/Users/alizaenazet/venv-metal/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(
>>> from tensorflow.python.client import device_lib
>>> tf.debugging.set_log_device_placement(True)
>>> 
>>> print(device_lib.list_local_devices())
2025-04-21 01:06:40.831511: I metal_plugin/src/device/metal_device.cc:1154] Metal device set to: Apple M4 Pro
2025-04-21 01:06:40.831559: I metal_plugin/src/device/metal_device.cc:296] systemMemory: 24.00 GB
2025-04-21 01:06:40.831579: I metal_plugin/src/device/metal_device.cc:313] maxCacheSize: 8.00 GB
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1745172400.831606 9217703 pluggable_device_factory.cc:305] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.
I0000 00:00:1745172400.831643 9217703 pluggable_device_factory.cc:271] Created TensorFlow device (/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 685062345586209203
xla_global_id: -1
, name: "/device:GPU:0"
device_type: "GPU"
locality {
  bus_id: 1
}
incarnation: 171648293091322613
physical_device_desc: "device: 0, name: METAL, pci bus id: <undefined>"
xla_global_id: -1
]
>>> 
>>> print("Number GPUs Available: ",
...       len(tf.config.experimental.list_physical_devices('GPU')))
Number GPUs Available:  1
>>> 
Enter fullscreen mode Exit fullscreen mode

pada bagian ini menunjukan gpu metal telah terdeteksi

physical_device_desc: "device: 0, name: METAL, pci bus id: <undefined>"
Enter fullscreen mode Exit fullscreen mode
Number GPUs Available:  1
Enter fullscreen mode Exit fullscreen mode

menunjukan bahwa 1 gpu telah siap digunakan.

aktivasi gpu

untuk melakukan aktivasi pada terminal terdapat 2 kondisi berikut

Awal mulai project di-inisiasi

Pada awal seperti Hari pertama / proyek baru anda dapat lakukan aktivasi pada terminal anda dengan command berikut :

python -m venv ~/venv-metal
source ~/venv-metal/bin/activate
pip install -U tensorflow tensorflow-metal ...
Enter fullscreen mode Exit fullscreen mode

lakukan sekali saja pada project anda melalui terminal.
Contoh pada direktori anda /belajar-cnn/proyek-pertama dimana proyek-pertama tempat anda mengerjakan anda dan itu adalah direktori pertama kali dibuat maka anda dapat melakukan command diatas.

Jika telah dilakukan inisiasi

Jika anda telah melakukan pada command sebelumnya maka setiap kali anda memulai pada terminal baru anda cukup melakukan dengan command berikut :

source ~/venv-metal/bin/activate
Enter fullscreen mode Exit fullscreen mode

seharusnya sekarang terminal anda telah didalam env venv-metal seperti berikut :
Image description

Jika anda menggunakan pengerjaan dengan kernel Jupyter pada file .ipynb dapat mengikuti tahapan selanjutnya.


Menggunakan kernel jupyter

Aktifkan env Anda lebih dulu:

source ~/venv-metal/bin/activate
Enter fullscreen mode Exit fullscreen mode

Install ipykernel (sekali saja per env) alias setiap kali anda menginisiasi project anda:

pip install --upgrade ipykernel
python -m ipykernel install --user --name venv-metal \
        --display-name "Python (TF‑Metal)"
Enter fullscreen mode Exit fullscreen mode

anda dapat mengubah display name "Python (TF‑Metal)".

jika anda tidak mendapati masalah maka seharusnya pada akhir output terminal anda kurang lebih seperti berikut :

#... output sebelumnya
.2 traitlets-5.14.3 wcwidth-0.2.13
Installed kernelspec venv-metal in /Users/alizaenazet/Library/Jupyter/kernels/venv-metal
Enter fullscreen mode Exit fullscreen mode

maka anda siap menggunakan pada jupyter notebook anda pada langkah terakhir selanjutnya

Buka Jupyter dari dalam env atau pilih kernel secara manual.

jika anda menggunakan CLI atau jupyter lab anda dapat gunakan cara berikut :

Tetap di env, jalankan:

jupyter notebook          # atau  jupyter lab
Enter fullscreen mode Exit fullscreen mode

Jika anda menggunakan Cara 2 (VS Code, PyCharm, atau JupyterHub)

  • Buka notebook.
  • Klik nama kernel di kanan‑atas → pilih “Python (TF‑Metal)” (nama yang Anda set pada --display-name).

Image description

tampilan pada vscode

anda dapat mulai mengecek terlebih dahulu pada awal code file .ipynb anda dengan code berikut :

import tensorflow as tf

from tensorflow.python.client import device_lib
tf.debugging.set_log_device_placement(True)
print(device_lib.list_local_devices())
print("Number GPUs Available: ",
len(tf.config.experimental.list_physical_devices('GPU')))
Enter fullscreen mode Exit fullscreen mode

anda dapat melihat output GPU yang terdeteksi.
Image description

Top comments (0)