ホームページ > テクノロジー周辺機器 > AI > TensorFlow のインストールを見てみましょう

TensorFlow のインストールを見てみましょう

王林
リリース: 2023-04-12 20:31:01
転載
1899 人が閲覧しました

1. 基本的な紹介と理解

1.1 はじめに

包括的で柔軟なオープンソース機械学習プラットフォームとして、TensorFlow を使用してデスクトップ、モバイル、Web 用のアプリケーションを作成できます。およびクラウド環境機械学習モデル、 は単に TensorFlow がオープンソースの機械学習フレームワークであるとも言えます。TensorFlow を使用すると、ニューラル ネットワークを迅速に構築し、同時にネットワークのトレーニング、評価、保存を迅速に行うことができます。

TensorFlow をインストールした後は、TensorFlow を使用するたびに直接インポートできます。 TensorFlow as tf

TensorFlow の公式 Web サイトは次のとおりです。

TensorFlow について |TensorFlow 中国語公式ウェブサイト (google.cn)

1.2 メリットとデメリットの分析とアーキテクチャの解釈

1.2.1 メリットTensorFlow のインストールを見てみましょう

#● 高い柔軟性: 計算フローグラフで表現できる計算であればTFを利用可能。

#● 真の移植性: デスクトップ、サーバー (CPU と GPU の両方)、および組み込みデバイスをサポートします。

● 多言語サポート: Python に基づいて、C ユーザー インターフェイスと Ipython インタラクティブ インターフェイスも提供します。

#● 視覚化ツール: TensorFlow は、強力な視覚化ツール TensorBoard を提供します。

#● 豊富なパッケージ ライブラリのサポート: TFlearn、TF-Slim、Keras など。

#1.2.2 欠点

#● Windows をサポートしていない

# TensorFlow が提供するすべての利点とは別に、Windows ユーザー向けの機能は非常に限られています。 Linux ユーザーにとって非常にフレンドリーです。 Python プログラミング言語による GPU プログラミングのサポート。

1.2.3 TensorFlow アーキテクチャの解釈

最初の層: デバイス通信層。デバイス層とネットワーク層は、ネットワーク通信とデバイス管理を担当します。デバイス管理では、TF デバイスの異種混合特性を実現でき、デバイス層は CPU、GPU、モバイルなどの異なるデバイスの通信実装をサポートします。ネットワーク通信は、 gRPC

通信プロトコルに依存して、異なるデバイス間のデータ送信と更新を実現します。

第 2 層: 処理オブジェクトとして Tensor を使用するカーネル実装層は、ネットワーク通信とデバイスのメモリ割り当てに依存し、さまざまな Tensor 操作または計算を実装します。主に、次のカーネル実装です。機械学習。

#3 番目の層: グラフ コンピューティング層。分散マスター コントロールとデータ フロー エグゼキューターで構成され、ローカル コンピューティング フロー グラフと分散コンピューティング フロー グラフの実装が含まれます。分散マスターは負荷能力に応じてさまざまなワークロードをさまざまなデバイスに分散し、データ フロー エグゼキューターは最良の実験手法に基づいてデータ フロー グラフを実行します。

TensorFlow のインストールを見てみましょう第 4 層: API インターフェイス層, C API は、C 言語で実装された TF 関数モジュールのインターフェイスをカプセル化したものです。 C 言語が選択された理由は、C 言語が低レベル言語であり、シンプルで高速で信頼性が高く、あらゆるオペレーティング システムで実行できるためです。

第 5 層: クライアント層、Python、C およびその他のプログラミング言語は、アプリケーション層の API インターフェイス層を通じて TF コア関数を呼び出し、関連する実験やアプリケーションを実装します。 TensorFlow の最後の層には、Python と C で実装されたトレーニング ライブラリと推論ライブラリが含まれています。

TensorFlow 入門の実践的な操作の基本理論と設計思想を完全に理解したい場合は、中国大学 MOOC にアクセスして 「TensorFlow 入門」を学ぶことができます。実践コース「 」では、TensorFlow の基本的なアプリケーションと実践をすぐに始めてみましょう。

2. インストールと使用

2.1 インストール

ここでは、Ubuntu 16.04 以降 (64 ビット) を例として取り上げます

2.1.1 pip を使用したインストール

##PIP は、Python で記述されたソフトウェア パッケージのインストールと管理に使用されるパッケージ管理システムです。

最初に Python 環境をインストールする必要がありますが、これには Python 3.6 ~ 3.9 および pip 19.0 以降が必要です。インストールされているかどうかわからない場合は、バージョンを渡すことができます。続行できるかどうかメソッドを確認してください。

python3 –version
pip3 --version
ログイン後にコピー

インストールされていない場合は、次のコードを参照してください:

sudo apt update
sudo apt install python3-dev python3-pip python3-venv
ログイン後にコピー

重要なポイント: 実際、ここでは Python のインストールに anaconda をインストールすることをお勧めします。これにより、多くのことを節約できます。

anaconda には、190 以上の科学パッケージと、conda や Python などの依存関係が含まれています。さまざまなライブラリの問題やバージョンの問題を軽減します。

#第二に、環境を構築する必要があります。ここでの推奨事項は、仮想環境のインストールです

最後に、仮想環境環境をアクティブ化し、仮想環境に TensorFlow pip ソフトウェア パッケージをインストールします。

pip install --upgrade TensorFlow
ログイン後にコピー

インストールが完了したら、次のことを確認できます。インストールが成功したことを確認するためです。

python -c "import TensorFlow
ログイン後にコピー

2.1.2 ソース コードのコンパイルとインストール

git clone --recurse-submodules
https://github.com/TensorFlow/TensorFlow
ログイン後にコピー

インストール

##参考

https:/ /www.php.cn/link/a03caec56cd82478bf197475b48c05f9 Configure./configure

実際の状況に基づいて、一連の質問に正直に答えてください。応答後、bazel は環境を設定しますが、この時点で、コンパイル依存パッケージの取得を容易にするために、マシンは外部ネットワークにアクセスできる必要があります。一部のパッケージは壁を飛び越える必要がある場合があります。

コンパイル

bazel build -c opt --config=cuda
//TensorFlow/tools/pip_package:build_pip_package
ログイン後にコピー

2.1.3 Docker イメージのインストール

Docker は、開発者が利用できるオープンソースのアプリケーション コンテナ エンジンです。アプリケーションと依存関係をポータブル コンテナにパッケージ化し、一般的な Linux マシンに公開できます。Linux マシンは仮想化も可能です。

Docker 経由で TensorFlow をインストールして実行すると、マシンに以前にインストールされたパッケージから完全に分離されます。

公式イメージ

使用できる 4 つの Docker イメージを公式に提供します:

CPU バージョンのみ、開発環境なし: gcr.io/TensorFlow/TensorFlow

CPU バージョンのみ、開発環境なし: gcr.io/TensorFlow/TensorFlow:latest-devel

GPU をサポート、開発環境なし: gcr.io/TensorFlow/TensorFlow:latest-gpu

GPU をサポート、開発環境なし: gcr.io /TensorFlow/TensorFlow:latest-devel-gpu

Docker ユーザー グループの作成

通常のユーザーを許可する コンテナーはsudoなしで起動しました。

usermod -a -G docker 用户名
ログイン後にコピー

Docker コンテナを開始します

GPU をサポートするバージョンを使用しているため、4 番目のバージョンを選択しましたコンピュータがサポートしているバージョンを確認し、対応するコマンドをダウンロードできます。

docker run -it 
gcr.io/TensorFlow/TensorFlow
ログイン後にコピー

2.2 Use

2.2.1 Placeholder

構文: tf.compat.v1.placeholder(dtype,shape=None, name=None)

##例 1:

#
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]))
ログイン後にコピー

例 2:

首先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)
ログイン後にコピー

特定のパラメータの説明:

dtype: 入力されるテンソルの要素のデータ型。

shape: デフォルトは None: 入力されるテンソルの形状。これはオプションのパラメーターです。形状が指定されていない場合は、任意の形状のテンソルを入力できます。

● 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开发,有丰富的大公司和海外工作经验。

以上がTensorFlow のインストールを見てみましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート