如何使用resnet101将keras模型导出到tensorflow,并使用exporter.export\u saved\u模型方法
我正在使用Keras和resnet 101进行培训,希望将我的模型导出到TensorFlow服务中,并使用此方法导出exporter.export\u推断图,它给出了错误信息如何使用resnet101将keras模型导出到tensorflow,并使用exporter.export\u saved\u模型方法,keras,tensorflow-serving,resnet,Keras,Tensorflow Serving,Resnet,我正在使用Keras和resnet 101进行培训,希望将我的模型导出到TensorFlow服务中,并使用此方法导出exporter.export\u推断图,它给出了错误信息 FailedPremissionError(回溯见上文):尝试使用未初始化的值conv2_block2_1_bn/移动_variance/本地_step_1是否有任何特定原因要使用导出_saved_Model保存模型 如果您的目标是保存预训练模型,resnet,并使用Tensorflow服务执行推断,则可以使用以下代码:
FailedPremissionError(回溯见上文):尝试使用未初始化的值conv2_block2_1_bn/移动_variance/本地_step_1是否有任何特定原因要使用
导出_saved_Model
保存模型
如果您的目标是保存预训练模型,resnet
,并使用Tensorflow服务执行推断,则可以使用以下代码:
from tensorflow.keras.applications import ResNet50
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras import Model
my_resnet = ResNet50(weights='imagenet', include_top=False, input_shape=(224,224,3))
# Add Global Average Pooling Layer
x = my_resnet.output
x = GlobalAveragePooling2D()(x)
# Add a Output Layer
my_resnet_output = Dense(5, activation='softmax')(x)
# Combine whole Neural Network
my_resnet_model = Model(inputs=my_resnet.input, outputs=my_resnet_output)
my_resnet_model.save('my_flowers')
最后一行代码以.pb格式保存模型
现在,我们需要为客户机文件编写代码,并可以使用Tensorflow服务执行推断
import grpc
import requests
import tensorflow as tf
import cv2
import os
import numpy as np
def main():
img_array = cv2.imread('daisy.jpg')
new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
new_array = new_array / 255
import json
data = json.dumps(
{"signature_name": "serving_default", "instances": new_array.reshape(-1, 224, 224, 3).tolist()})
print('Data: {} ... {}'.format(data[:50], data[len(data) - 52:]))
headers = {"content-type": "application/json"}
json_response = requests.post('http://35.226.32.128/v1/models/test0221/versions/1:predict', data=data, headers=headers)
predictions = json.loads(json_response.text)['predictions']
np.argmax(predictions[0])
dicti
for flower, label in dicti.items():
if label == np.argmax(predictions[0]):
print(flower)
if __name__ == '__main__':
main()
是否有任何特定原因使您想使用export\u saved\u Model
保存模型
如果您的目标是保存预训练模型,resnet
,并使用Tensorflow服务执行推断,则可以使用以下代码:
from tensorflow.keras.applications import ResNet50
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras import Model
my_resnet = ResNet50(weights='imagenet', include_top=False, input_shape=(224,224,3))
# Add Global Average Pooling Layer
x = my_resnet.output
x = GlobalAveragePooling2D()(x)
# Add a Output Layer
my_resnet_output = Dense(5, activation='softmax')(x)
# Combine whole Neural Network
my_resnet_model = Model(inputs=my_resnet.input, outputs=my_resnet_output)
my_resnet_model.save('my_flowers')
最后一行代码以.pb格式保存模型
现在,我们需要为客户机文件编写代码,并可以使用Tensorflow服务执行推断
import grpc
import requests
import tensorflow as tf
import cv2
import os
import numpy as np
def main():
img_array = cv2.imread('daisy.jpg')
new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
new_array = new_array / 255
import json
data = json.dumps(
{"signature_name": "serving_default", "instances": new_array.reshape(-1, 224, 224, 3).tolist()})
print('Data: {} ... {}'.format(data[:50], data[len(data) - 52:]))
headers = {"content-type": "application/json"}
json_response = requests.post('http://35.226.32.128/v1/models/test0221/versions/1:predict', data=data, headers=headers)
predictions = json.loads(json_response.text)['predictions']
np.argmax(predictions[0])
dicti
for flower, label in dicti.items():
if label == np.argmax(predictions[0]):
print(flower)
if __name__ == '__main__':
main()