在Cafe2中,可以通過定義網絡結構文件來定義一個簡單的神經網絡模型。以下是一個使用Cafe2定義一個簡單的全連接神經網絡模型的示例:
from caffe2.python import core, model_helper, workspace
# Define the network structure
model = model_helper.ModelHelper(name='simple_nn')
fc1 = model.net.FC(['input', 'fc1_w', 'fc1_b'], 'fc1')
relu1 = model.net.Relu(fc1, 'relu1')
fc2 = model.net.FC([relu1, 'fc2_w', 'fc2_b'], 'fc2')
output = model.net.Sigmoid(fc2, 'output')
# Initialize the parameters
workspace.FeedBlob('fc1_w', np.random.rand(100, 50).astype(np.float32))
workspace.FeedBlob('fc1_b', np.random.rand(100).astype(np.float32))
workspace.FeedBlob('fc2_w', np.random.rand(1, 100).astype(np.float32))
workspace.FeedBlob('fc2_b', np.random.rand(1).astype(np.float32))
# Create the input data
input_data = np.random.rand(50).astype(np.float32)
workspace.FeedBlob('input', input_data)
# Run the model
workspace.CreateNet(model.net)
workspace.RunNet(model.net)
# Get the output
output_data = workspace.FetchBlob('output')
print(output_data)
在這個示例中,我們定義了一個包含兩個全連接層和一個ReLU激活函數的簡單神經網絡模型。我們使用FC
、Relu
和Sigmoid
等操作來定義網絡結構,然后初始化參數并輸入數據,最后運行模型并獲取輸出。