Я создал нейронную сеть, используя TensorFlow через Keras API в Python, которая использует предварительно обученную сеть ResNet50
, чтобы иметь возможность классифицировать 133 различных породы собак.
Теперь я хочу иметь возможность развернуть эту модельтак что его можно использовать через TensorFlow.js, однако у меня возникают трудности с получением ResNet50
для работы.Я могу без проблем перенести созданный мной с нуля NN в TensorFlow.js, но перенести его с помощью предварительно обученной сети не так просто.
Вот код Python, который япытаюсь приспособиться:
from keras.applications.resnet50 import ResNet50
ResNet50_model = ResNet50(weights="imagenet") # download ImageNet challenge weights
def extractResNet50(tensor): # tensor shape is (1, 224, 224, 3)
return ResNet50(weights='imagenet', include_top=False, pooling="avg").predict(preprocess_input(tensor))
def dogBreed(img_path):
tensor = convertToTensor(img_path) # I can do this in TF.js already with no issue
resnetTensor = extractResNet50(tensor) # tensor returned in shape (1, 2048)
resnetTensor = np.expand_dims(resnetTensor, axis=0) # repeat this line 2 more times to get shape (1, 1, 1, 1, 2048)
# code below I can convert to TF.js without issue
prediction = model.predict(resnetTensor[0])
Как бы я преобразовал все выше, кроме строк кода 1 и 4 из dogBreed()
, для использования в TensorFlow.js?