如何使用resnet101将keras模型导出到tensorflow,并使用exporter.export\u saved\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服务执行推断,则可以使用以下代码:

我正在使用Keras和resnet 101进行培训,希望将我的模型导出到TensorFlow服务中,并使用此方法导出exporter.export\u推断图,它给出了错误信息


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()