Я разрабатываю приложение для обучения переносу, в котором я переобучаю MobileNetV2 для своего потока данных.
Я переобучаю модель с помощью retrain.py из тензор-концентратор-концентратор и не вносил никаких изменений.
Когда я запускаю скрипт из терминала, я получаю это предупреждение сразу после загрузки модели во временный каталог в моем профиле пользователя.
Importing a graph with a lower producer version 26 into an existing graph with producer
version 27. Shape inference will have run different parts of the graph with different
producer versions.
Во время отладки я создалсценарий test.py
, чтобы определить, откуда исходит предупреждение:
import tensorflow as tf
import tensorflow_hub as hub
def create_module_graph(module_spec):
"""Creates a graph and loads Hub Module into it.
Args:
module_spec: the hub.ModuleSpec for the image module being used.
Returns:
graph: the tf.Graph that was created.
bottleneck_tensor: the bottleneck values output by the module.
resized_input_tensor: the input images, resized as expected by the module.
wants_quantization: a boolean, whether the module has been instrumented
with fake quantization ops.
"""
FAKE_QUANT_OPS = ('FakeQuantWithMinMaxVars',
'FakeQuantWithMinMaxVarsPerChannel')
height, width = hub.get_expected_image_size(module_spec)
with tf.Graph().as_default() as graph:
resized_input_tensor = tf.placeholder(tf.float32, [None, height, width, 3])
m = hub.Module(module_spec)
bottleneck_tensor = m(resized_input_tensor)
wants_quantization = any(node.op in FAKE_QUANT_OPS
for node in graph.as_graph_def().node)
return graph, bottleneck_tensor, resized_input_tensor, wants_quantization
def main():
module_spec = hub.load_module_spec('https://tfhub.dev/google/imagenet/mobilenet_v2_100_96/classification/2')
graph, bottleneck_tensor, resized_input_tensor, wants_quantization = create_module_graph(module_spec)
if __name__ =='__main__':
main()
И обнаружил, что оно возникло из функции create_module_graph
в retrain.py
.Когда я запускаю скрипт из терминала, используя python test.py
, я получаю предупреждение производителя сверху.Однако, когда я запускаю main()
из консоли ipython, я не получаю предупреждения о версии производителя.
Я не уверен, почему это происходит, когда все, что я делаю, - это создание графа из репозитория tenorflow-hub.Я просмотрел версии совместимости документации и не увидел ничего особенно относящегося к ошибке.Просматривая исходный код , код , кажется, что он показывает, что мой график сокращен до самой низкой версии перед его построением.
- Не о чем ли беспокоиться?
- Изменится ли способ загрузки графика для прогнозирования?