知乎上有人問,conda、anaconda、pip、torch、pytorch、tensorflow到底是什麽東西?
對於那些做數據分析的Python初學者來說,這還真是個問題,有點傻傻分不清。
我畫了一張圖,可以大致看出它們的區別和關聯。
pytorch、tensorflow都是Python的第三方庫,相當於封裝的程式碼工具集庫,透過import匯入使用。
這兩個都是深度學習框架,用來搭建AI模型什麽的,使用範圍非常之廣,幾乎科研/互聯網公司都在用。
conda、pip是Python的包管理器,用來管理pytorch、tensorflow等第三方庫,比如下載、安裝、更新等。
另外conda還用來建立虛擬環境,和enev庫類似。
Anaconda是專門用於數據科學的Python發行版本(垂直版),它包含了Python、conda、上百個數據科學第三方庫等,是一個大而全的Python數據科學百寶盒
因此可以這樣理解,Anaconda包含conda、pip、torch、pytorch、tensorflow,而conda、pip用來管理torch、pytorch、tensorflow這些第三方庫
下面講講這些工具的安裝和基礎使用。
Anaconda
Anaconda安裝很簡單,直接去官網下載個exe檔,一路next安裝到本地即可(最好非C槽)
conda
如果你安裝了Anaconda,那麽conda會配套一起安裝好,無需你再操心
conda兩個核心功能,一是管理第三方庫,而是搭建虛擬環境
安裝第三方庫 以安裝numpy庫為例,直接在命令列輸入
conda install numpy
更新第三方庫
conda update numpy
刪除第三方庫
conda remove numpy
建立虛擬環境 方便隔離不同計畫的依賴項。例如,建立一個名為myenv的虛擬環境,並指定Python版本為3.8
conda create -n myenv python=3.8
啟用虛擬環境
activate myenv
結束虛擬環境
deactivate
pip
pip專門用於管理第三方庫,Python會內建pip,無需你再次安裝
pip的使用方法和conda類似,比如
pip install numpy
pytorch
pytorch是facebook開發的深度學習框架,而且是開源的。
pytorch主要用來構建深度學習模型,比如摺積神經網路、自然語言處理,最近大火的openai chatgpt也是基於pytorch建模的。
Anaconda已經內建pytoch,只需你做一些簡單的配置就可以使用。
以下是簡單的PyTorch程式碼範例,用於建立一個簡單的神經網路進行線性回歸。
import torch
import torch.nn as nn
import torch.optim as optim
# 定義模型
classLinearRegressionModel(nn.Module):
def__init__(self, input_dim, output_dim):
super(LinearRegressionModel, self).__init__()
self.linear = nn.Linear(input_dim, output_dim)
defforward(self, x):
out = self.linear(x)
return out
# 定義超參數
input_dim = 1
output_dim = 1
learning_rate = 0.01
num_epochs = 100
# 建立模型、損失函式和最佳化器
model = LinearRegressionModel(input_dim, output_dim)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=learning_rate)
# 訓練模型
for epoch in range(num_epochs):
# 假設我們有一些輸入數據x和目標數據y
x = torch.randn(100, input_dim)
y = 3 * x + torch.randn(100, output_dim)
# 前向傳播
outputs = model(x)
loss = criterion(outputs, y)
# 反向傳播和最佳化
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch + 1) % 10 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch + 1, num_epochs, loss.item()))
Tensorflow
Tensorflow是谷歌開發的開源深度學習框架,和pytorch一樣,都是用來搭建深度學習模型。
前幾年很出名的Deepmind公司AlphaGo,就是基於Tensorflow開發的。
以下是一個簡單的TensorFlow程式碼範例,用於建立一個簡單的神經網路進行分類:
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# 構建模型
model = keras.Sequential([
layers.Dense(64, activation='relu', input_shape=(10,)),
layers.Dense(32, activation='relu'),
layers.Dense(10, activation='softmax')
])
# 編譯模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# 訓練模型
model.fit(x_train, y_train, epochs=10)
其實還有很多鼎鼎大名的第三方庫,就不一一贅述。
加入知識星球【我們談論數據科學】
600+小夥伴一起學習!