Spec-Zone.ru › TensorFlow

tf.keras.layers.TorchModuleWrapper

Обертка слоя для модуля Torch.

Наследуется от: Layer, Operation

tf.keras.layers.TorchModuleWrapper(
    module, name=None, **kwargs
)

TorchModuleWrapper — это оберточный класс, который может преобразовать любой torch.nn.Module в слой Keras, в частности, сделав его параметры отслеживаемыми Keras.

Аргументы
module Экземпляр torch.nn.Module. Если это экземпляр LazyModule, то его параметры должны быть инициализированы перед передачей экземпляра в TorchModuleWrapper (например, вызовом его один раз).
name Имя слоя (строка).

Пример:

Вот пример использования TorchModuleWrapper с обычными модулями PyTorch.

import torch.nn as nn
import torch.nn.functional as F

import keras
from keras.src.layers import TorchModuleWrapper

class Classifier(keras.Model):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        # Wrap `torch.nn.Module`s with `TorchModuleWrapper`
        # if they contain parameters
        self.conv1 = TorchModuleWrapper(
            nn.Conv2d(in_channels=1, out_channels=32, kernel_size=(3, 3))
        )
        self.conv2 = TorchModuleWrapper(
            nn.Conv2d(in_channels=32, out_channels=64, kernel_size=(3, 3))
        )
        self.pool = nn.MaxPool2d(kernel_size=(2, 2))
        self.flatten = nn.Flatten()
        self.dropout = nn.Dropout(p=0.5)
        self.fc = TorchModuleWrapper(nn.Linear(1600, 10))

    def call(self, inputs):
        x = F.relu(self.conv1(inputs))
        x = self.pool(x)
        x = F.relu(self.conv2(x))
        x = self.pool(x)
        x = self.flatten(x)
        x = self.dropout(x)
        x = self.fc(x)
        return F.softmax(x, dim=1)


model = Classifier()
model.build((1, 28, 28))
print("Output shape:", model(torch.ones(1, 1, 28, 28).to("cuda")).shape)

model.compile(
    loss="sparse_categorical_crossentropy",
    optimizer="adam",
    metrics=["accuracy"]
)
model.fit(train_loader, epochs=5)
Атрибуты
input Получает входной(ые) тензор(ы) символической операции.

Возвращает только тензор(ы), соответствующие первому вызову операции.

output Получает выходной(ые) тензор(ы) слоя.

Возвращает только тензор(ы), соответствующие первому вызову операции.

Методы

from_config

Посмотреть исходный код

@classmethod
from_config(
    config
)

Создаёт слой по его конфигурации.

Этот метод является обратным к get_config, способным создать тот же слой из словаря конфигурации. Он не обрабатывает связность слоёв (обрабатывается Network), а также веса (обрабатываются set_weights).

Аргументы
config Словарь Python, обычно результат вызова get_config.
Возвращает
Экземпляр слоя.

parameters

Посмотреть исходный код

parameters(
    recurse=True
)

symbolic_call

Посмотреть исходный код

symbolic_call(
    *args, **kwargs
)

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/layers/TorchModuleWrapper

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API