如何解决tf.saved_model.save抛出“ ValueError:不支持任何值”
我正在尝试使用python 3.6和tensorflow 1.14训练SSD神经网络 这是代码,大部分都是从https://www.tensorflow.org/hub/tutorials/tf2_image_retraining
复制而来import itertools
import os
import matplotlib.pylab as plt
import numpy as np
import tensorflow as tf
import tensorflow_hub as hub
print("TF version:",tf.__version__)
print("Hub version:",hub.__version__)
print("GPU is","available" if tf.test.is_gpu_available() else "NOT AVAILABLE")
module_selection = ("mobilenet_v2_100_224",224)
handle_base,pixels = module_selection
MODULE_HANDLE ="https://tfhub.dev/google/imagenet/{}/feature_vector/4".format(handle_base)
IMAGE_SIZE = (pixels,pixels)
print("Using {} with input size {}".format(MODULE_HANDLE,IMAGE_SIZE))
BATCH_SIZE = 32
data_dir = 'flower_photos'
datagen_kwargs = dict(rescale=1./255,validation_split=.20)
dataflow_kwargs = dict(target_size=IMAGE_SIZE,batch_size=BATCH_SIZE,interpolation="bilinear")
valid_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
**datagen_kwargs)
valid_generator = valid_datagen.flow_from_directory(
data_dir,subset="validation",shuffle=False,**dataflow_kwargs)
do_data_augmentation = False
if do_data_augmentation:
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
rotation_range=40,horizontal_flip=True,width_shift_range=0.2,height_shift_range=0.2,shear_range=0.2,zoom_range=0.2,**datagen_kwargs)
else:
train_datagen = valid_datagen
train_generator = train_datagen.flow_from_directory(
data_dir,subset="training",shuffle=True,**dataflow_kwargs)
do_fine_tuning = False
print("Building model with",MODULE_HANDLE)
model = tf.keras.Sequential([
# Explicitly define the input shape so the model can be properly
# loaded by the TFLiteConverter
tf.keras.layers.InputLayer(input_shape=IMAGE_SIZE + (3,)),hub.KerasLayer(MODULE_HANDLE,trainable=do_fine_tuning),tf.keras.layers.Dropout(rate=0.2),tf.keras.layers.Dense(train_generator.num_classes,kernel_regularizer=tf.keras.regularizers.l2(0.0001))
])
model.build((None,)+IMAGE_SIZE+(3,))
model.summary()
model.compile(
optimizer=tf.keras.optimizers.SGD(lr=0.005,momentum=0.9),loss=tf.keras.losses.CategoricalCrossentropy(from_logits=True,label_smoothing=0.1),metrics=['accuracy'])
steps_per_epoch = train_generator.samples // train_generator.batch_size
validation_steps = valid_generator.samples // valid_generator.batch_size
hist = model.fit(
train_generator,epochs=1,steps_per_epoch=steps_per_epoch,validation_data=valid_generator,validation_steps=validation_steps).history
saved_model_path = "saved_flowers_model"
tf.saved_model.save(model,saved_model_path)
每次到达最后一行时,都会引发以下错误:
Traceback (most recent call last):
File "D:\Python\Threat_Assesser\retrain.py",line 78,in <module>
tf.saved_model.save(model,saved_model_path)
File "D:\Python\lib\site-packages\tensorflow\python\saved_model\save.py",line 822,in save
meta_graph_def,saveable_view,signatures)
File "D:\Python\lib\site-packages\tensorflow\python\saved_model\save.py",line 510,in _fill_meta_graph_def
object_map,resource_map,asset_info = saveable_view.map_resources()
File "D:\Python\lib\site-packages\tensorflow\python\saved_model\save.py",line 245,in map_resources
tensor_util.constant_value(capture))
File "D:\Python\lib\site-packages\tensorflow\python\framework\constant_op.py",line 246,in constant
allow_broadcast=True)
File "D:\Python\lib\site-packages\tensorflow\python\framework\constant_op.py",line 284,in _constant_impl
allow_broadcast=allow_broadcast))
File "D:\Python\lib\site-packages\tensorflow\python\framework\tensor_util.py",line 454,in make_tensor_proto
raise ValueError("None values not supported.")
ValueError: None values not supported.
有人知道这是怎么回事吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。