Rumah  >  Artikel  >  Peranti teknologi  >  Mari kita bawa anda melalui pemasangan TensorFlow

Mari kita bawa anda melalui pemasangan TensorFlow

王林
王林ke hadapan
2023-04-12 20:31:011768semak imbas

1. Pengenalan dan pemahaman asas

1.1 Pengenalan

Sebagai platform pembelajaran mesin sumber terbuka yang komprehensif dan fleksibel, kami boleh menggunakan TensorFlow untuk mencipta aplikasi untuk desktop, mudah alih, web dan model pembelajaran mesin Alam Sekitar awan, juga boleh dikatakan secara ringkas bahawa TensorFlow ialah rangka kerja pembelajaran mesin sumber terbuka Kita boleh menggunakan TensorFlow untuk membina rangkaian saraf dengan cepat, dan pada masa yang sama melatih, menilai dan menyimpan rangkaian dengan cepat.

Selepas kami memasang TensorFlow, kami boleh mengimport terus TensorFlow setiap kali kami menggunakannya

import TensorFlow as tf

Tapak web rasmi TensorFlow adalah seperti berikut:

Tentang TensorFlow |Tapak web rasmi TensorFlow Chinese (google.cn)

Mari kita bawa anda melalui pemasangan TensorFlow

1.2 Analisis kelebihan dan kekurangan serta tafsiran seni bina

1.2.1 Kelebihan

● Fleksibiliti tinggi: Selagi pengiraan boleh dinyatakan sebagai graf aliran pengiraan, TF boleh digunakan.

● Kemudahalihan sebenar: menyokong desktop, pelayan (kedua-dua CPU dan GPU) dan peranti terbenam.

● Sokongan berbilang bahasa: Berdasarkan Python, ia juga menyediakan antara muka pengguna C++ dan antara muka interaktif Ipython.

● Alat visualisasi: TensorFlow menyediakan alat visualisasi yang berkuasa, TensorBoard.

● Sokongan perpustakaan pakej kaya: TFlearn, TF-Slim, Keras, dsb.

1.2.2 Kelemahan

● Tidak menyokong Windows

Selain daripada semua kelebihan yang ditawarkan oleh TensorFlow, fungsinya untuk pengguna Windows adalah sangat terhad. Ia sangat mesra kepada pengguna Linux. dan sokongan bahasa pengaturcaraan Python untuk pengaturcaraan GPU.

1.2.3 Tafsiran Seni Bina TensorFlow

Lapisan pertama: lapisan komunikasi peranti, yang terdiri daripada lapisan peranti dan lapisan rangkaian dan bertanggungjawab untuk komunikasi Rangkaian dan pengurusan peranti. Pengurusan peranti boleh merealisasikan ciri heterogen peranti TF Lapisan peranti menyokong pelaksanaan komunikasi peranti yang berbeza seperti CPU, GPU dan Mudah Alih. Komunikasi rangkaian bergantung pada protokol komunikasi

gRPC

Mari kita bawa anda melalui pemasangan TensorFlow untuk merealisasikan penghantaran data dan kemas kini antara peranti yang berbeza.

Lapisan kedua: Lapisan pelaksanaan kernel, yang menggunakan Tensor sebagai objek pemprosesan, bergantung pada komunikasi rangkaian dan peruntukan memori peranti, dan melaksanakan pelbagai operasi atau pengiraan Tensor, terutamanya pelaksanaan kernel pembelajaran mesin. Lapisan ketiga: lapisan pengkomputeran graf, terdiri daripada kawalan induk teragih dan pelaksana aliran data, termasuk pelaksanaan graf aliran pengkomputeran tempatan dan graf aliran pengkomputeran teragih. Induk teragih mengedarkan beban kerja yang berbeza pada peranti berbeza mengikut keupayaan beban dan pelaksana aliran data melaksanakan graf aliran data berdasarkan kaedah percubaan terbaik.Lapisan 4 : Lapisan antara muka API, C API ialah enkapsulasi antara muka modul fungsi TF, yang dilaksanakan dalam bahasa C. Bahasa C dipilih kerana ia adalah bahasa peringkat rendah, mudah, pantas, boleh dipercayai dan boleh dijalankan pada mana-mana sistem pengendalian.

Lapisan kelima: Lapisan pelanggan, Python, C++ dan bahasa pengaturcaraan lain memanggil fungsi teras TF melalui lapisan antara muka API dalam lapisan aplikasi untuk melaksanakan eksperimen dan aplikasi yang berkaitan.

Dan lapisan terakhir TensorFlow mengandungi perpustakaan latihan dan inferens yang dilaksanakan dalam python dan C++.

Jika anda ingin memahami sepenuhnya teori asas dan idea reka bentuk operasi praktikal pengenalan TensorFlow, anda boleh pergi ke MOOC Universiti China untuk belajar "TensorFlow Kursus Praktikal Pengenalan" , cepat mulakan dengan aplikasi dan amalan asas TensorFlow.

2. Pemasangan dan penggunaan

2.1 Pemasangan

Di sini kami mengambil Ubuntu 16.04 atau lebih tinggi (64-bit) sebagai contoh

2.1.1 Pasang menggunakan pip

PIP ialah sistem pengurusan pakej yang digunakan untuk memasang dan mengurus pakej perisian yang ditulis dalam Python.

Pertama kita perlu memasang persekitaran python, yang memerlukan Python 3.6-3.9 dan pip 19.0 dan lebih tinggi Jika anda tidak pasti sama ada kami telah memasangnya, anda boleh lulus versi Semak untuk memastikan anda boleh meneruskan

python3 –version
pip3 --version

Jika ia tidak dipasang, sila rujuk kod berikut:

sudo apt update
sudo apt install python3-dev python3-pip python3-venv

Isi penting: Sebenarnya, untuk pemasangan ular sawa di sini, saya mengesyorkan memasang anaconda, yang boleh menjimatkan banyak perkara anaconda merangkumi lebih daripada 190 pakej saintifik dan kebergantungan mereka seperti conda dan Python. . Ia boleh mengurangkan pelbagai masalah perpustakaan , masalah versi.

Kedua kita perlu mewujudkan persekitaran maya

Akhir sekali, kami mengaktifkan persekitaran maya, dan kemudian memasang pakej TensorFlow pip dalam persekitaran maya

pip install --upgrade TensorFlow

Selepas pemasangan selesai , anda boleh mengesahkan untuk memastikan pemasangan berjaya

python -c "import TensorFlow

2.1.2 Penyusunan dan pemasangan kod sumber

git clone --recurse-submodules
https://github.com/TensorFlow/TensorFlow

Pemasangan

Rujukan https://www.php.cn/link/a03caec56cd82478bf197475b48c05f9>

Configure./configure Jawab satu siri soalan dengan jujur ​​berdasarkan situasi sebenar anda. Selepas menjawab, bazel akan mengkonfigurasi persekitaran Pada masa ini, mesin perlu boleh mengakses rangkaian luaran untuk memudahkan mendapatkan beberapa pakej pergantungan kompilasi. Sesetengah pakej mungkin perlu lompat ke atas dinding.

Kompilasi

bazel build -c opt --config=cuda
//TensorFlow/tools/pip_package:build_pip_package
2.1.3 Pemasangan imej Docker

Docker ialah enjin kontena aplikasi sumber terbuka yang membenarkan Pembangun boleh membungkus aplikasi dan kebergantungan mereka ke dalam bekas mudah alih dan menerbitkannya ke mana-mana mesin Linux yang popular, yang juga boleh dimayakan.

Apabila anda memasang dan menjalankan TensorFlow melalui Docker, ia diasingkan sepenuhnya daripada pakej yang dipasang sebelum ini pada mesin anda.

Imej Rasmi

Secara rasmi menyediakan 4 imej Docker untuk digunakan:

Versi CPU sahaja, tanpa persekitaran pembangunan: gcr.io/TensorFlow/TensorFlow

Versi CPU sahaja, dengan persekitaran pembangunan: gcr.io/TensorFlow/TensorFlow:latest- devel

menyokong GPU dan tidak mempunyai persekitaran pembangunan: gcr.io/TensorFlow/TensorFlow:latest-gpu

menyokong GPU dan mempunyai persekitaran pembangunan: gcr. io/TensorFlow/TensorFlow:latest-devel-gpu

Buat kumpulan pengguna Docker

Benarkan pengguna biasa Bekas boleh dimulakan tanpa sudo.

usermod -a -G docker 用户名

Mulakan bekas Docker

Saya menggunakan versi yang menyokong GPU jadi saya memilih yang keempat satu. Sila semak versi yang disokong oleh komputer anda dan kemudian muat turun arahan yang sepadan. >Sintaks: tf.compat.v1.placeholder(dtype,shape=None, name=None)

docker run -it 
gcr.io/TensorFlow/TensorFlow

Contoh 1:

Contoh 2:

w =
tf.constant([1, 1, 2, 2, 3, 3], shape=[2, 3])
h =
tf.constant([7, 7, 9, 9, 11, 11], shape=[3, 2])
#下面语法表示的是两个矩阵相乘
l
= tf.matmul(w, h)

with
tf.Session() as
print(sess.run([a,b,c]))
Perihalan parameter khusus:

dtype: Jenis data elemen dalam tensor, yang akan menjadi input.
首先import进行导入
import TensorFlow as tf
w = tf.placeholder(dtype=tf.float32)
h = tf.placeholder(dtype=tf.float32)
sum = tf.add(w,h)
## 填充数据时,使用run()方法的feed_dict参数指定张量对应的值即可,数据格式和字典类似。

with tf.Session() as sess:
# 填充占位符,填充形式类字典
res
= sess.run(sum, feed_dict={w: [5], h: [6]})
print(res)

bentuk: Lalai ialah Tiada: bentuk tensor yang akan dimasukkan, ia adalah parameter pilihan. Jika tiada bentuk dinyatakan, seseorang boleh memasukkan tensor sebarang bentuk.

● name: 默认为None:操作的名称,可选参数。

2.2.2变量

Variable()构造函数希望变量有一个初始值,它可以是任何种类或形状的Tensor。变量的类型和形式由其初始值定义。形状和变量一旦被创建就会被固定下来。

在众多的参数中,需要注意的是validate_shape: 默认为True。如果是False,允许变量以未知的形状值初始化。如果是True,初始值的形状必须是已知的,这是默认的。

2.2.2.1创建变量

最常见的创建变量方式是使用Variable()构造函数。

import TensorFlow as tf
v = tf.Variable([1,2,3,4,5,6]) #创建变量v,为一个array
print(v) 
#查看v的shape,不是v的值。
## 结果是: <tf.Variable 'Variable:0' shape=(6,), numpy=array([1,2,3,4,5,6],dtype=int32)>
with tf.Session() as sess:
 
sess.run(v.initializer) ##运行变量的initializer。调用op之前,所有变量都应被显式地初始化过。
sess.run(v) ##查看v的值,结果是:array([1,2,3,4,5,6])

注意: 我们在进行初始化的时候也可以按如下书写

init = tf.global_variables_initializer()#全局变量初始化
with tf.Session() as sess:
sess.run(init)

2.2.2.2分配或修改变量中的元素

我们使用assign()方法来修改这个变量。

示例一:assign用来更新值

w = tf.Variable([3, 4,5,6])
w [1].assign(2)
w

输出结果如下:

<tf.Variable ‘Variable:0’ shape=(4,),
numpy=array([3, 2,5,6], dtype=int32)>
## 我们在此处使用assign将数组中的索引为1的值由4更新为2

示例二 : assign_add()用来添加变量值

# create variable
w = tf.Variable([3, 4,5,6])
# using assign_add() function
w.assign_add([1, 1,1,1])
w

输出结果如下:

<tf.Variable ‘Variable:0’ shape=(4,),
numpy=array([4, 5,6,7], dtype=int32)>
## 我们在此处使用assign_add()将数组中的每一个数值加1进行输出

示例三: assign_sub()用来从变量中减去值

# create variable
w = tf.Variable([3, 4,5,6])
# using assign_add() function
w.assign_sub([1, 1,1,1])
w
<tf.Variable ‘Variable:0’ shape=(4,),
numpy=array([2, 3,4,5], dtype=int32)>
## 我们在此处使用assign_sub()将数组中的每一个数值减1进行输出

2.2.2.3改变变量的形状

tf.reshape()方法用于改变变量的形状。必须传递变量和形状。

import TensorFlow as tf
w= tf.Variable([[3, 5, 6, 7]])
tf.reshape(w, shape=(2, 2))
w

输出结果如下:

<tf.Tensor: shape=(2, 2), ,
numpy=array([[3, 5],[6, 7]], dtype=int32)>

2.2.3 Session会话

TensorFlow中只有让Graph(计算图)上的节点在Session(会话)中执行,才会得到结果。Session的开启涉及真实的运算,因此比较消耗资源。在使用结束后,务必关闭Session。

方式一进行手动关闭:

import TensorFlow as tf
w= tf.constant(8, dtype=tf.int8)
h = tf.constant(6, dtype=tf.int8)
result= w + h
sess = tf.Session()
sess.run(result)#执行运算
sess.close() #手动关闭session

方式二进行自动关闭(使用到with语句):

import TensorFlow as tf
w= tf.constant(8, dtype=tf.int8)
h = tf.constant(6, dtype=tf.int8)
result= w + h
with tf.Session() as sess: #运算结束后session自动关闭
sess.run(res)

安装好TensorFlow后,初步入门机器学习的同学可以到中国大学MOOC上学习《 TensorFlow 入门实操课程 》,快速了解如何使用TensorFlow建立和训练神经网络、用自然语言处理系统教会机器理解、分析和回应人类的言语 、构建和训练模型等基本理论。我推荐对模型部署有需求的同学可以去了解《 TensorFlow 入门课程 - 部署篇 》,高效掌握在多种生产场景下灵活部署模型的技巧。大家也可以在TensorFlow官网(https://www.php.cn/link/e48382353dc6c66379fb8e1ebf48c5e8)上探索更多学习资源,持续精进机器学习知识与技能!

作者介绍

张云波,活跃的IT网红讲师,拥有学员31w+,国内早期开始和发布苹果Swift、安卓Kotlin、微信小程序、区块链技术的讲师之一。主攻前端开发、iOS开发、Android开发、Flutter开发、区块链Dapp开发,有丰富的大公司和海外工作经验。

Atas ialah kandungan terperinci Mari kita bawa anda melalui pemasangan TensorFlow. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam