#python #tensorflow2.0 #placeholder
#python #tensorflow2.0 #плейсхолдер
Вопрос:
Я просто пишу те части своего кода, в которых я получаю ошибку, которую я упоминаю для заполнителя. Я комментирую ниже перед кодом, в котором я получаю эту ошибку
# Read the shape information and compressed string from the binary file.
string_ll= tf.placeholder(tf.string, [1])
string_lh= tf.placeholder(tf.string, [1])
string_hl= tf.placeholder(tf.string, [1])
string_hh= tf.placeholder(tf.string, [1])
x_ll_shape = tf.placeholder(tf.int32, [2])
x_lh_shape = tf.placeholder(tf.int32, [2])
x_hl_shape = tf.placeholder(tf.int32, [2])
x_hh_shape = tf.placeholder(tf.int32, [2])
y_ll_shape = tf.placeholder(tf.int32, [2])
y_lh_shape = tf.placeholder(tf.int32, [2])
y_hl_shape = tf.placeholder(tf.int32, [2])
y_hh_shape = tf.placeholder(tf.int32, [2])
with open((args.input_file 'll'), "rb") as f:
packed_ll = tfc.PackedTensors(f.read())
with open((args.input_file 'lh'), "rb") as f:
packed_lh = tfc.PackedTensors(f.read())
with open((args.input_file 'hl'), "rb") as f:
packed_hl = tfc.PackedTensors(f.read())
with open((args.input_file 'hh'), "rb") as f:
packed_hh = tfc.PackedTensors(f.read())
tensors_ll = [string_ll,x_ll_shape, y_ll_shape]
tensors_lh = [string_lh,x_lh_shape, y_lh_shape]
tensors_hl = [string_hl,x_hl_shape, y_hl_shape]
tensors_hh = [string_hh,x_hh_shape, y_hh_shape]
arrays_ll = packed_ll.unpack(tensors_ll)
arrays_lh = packed_lh.unpack(tensors_lh)
arrays_hl = packed_hl.unpack(tensors_hl)
arrays_hh = packed_hh.unpack(tensors_hh)
# Instantiate model.
prediction=Prediction(args.num_filters)
encoder = Encoder(args.num_filters)
decoder = Decoder(args.num_filters)
entropy_bottleneck = tfc.EntropyBottleneck(dtype=tf.float32)
y_ll_shape=tf.concat([y_ll_shape,[args.num_filters]],axis=0)
y_lh_shape=tf.concat([y_lh_shape,[args.num_filters]],axis=0)
y_hl_shape=tf.concat([y_hl_shape,[args.num_filters]],axis=0)
y_hh_shape=tf.concat([y_hh_shape,[args.num_filters]],axis=0)
y_ll_hat = entropy_bottleneck.decompress(string_ll,y_ll_shape,channels=args.num_filters)
y_lh_hat = entropy_bottleneck.decompress(string_lh,y_lh_shape,channels=args.num_filters)
y_hl_hat = entropy_bottleneck.decompress(string_hl,y_hl_shape,channels=args.num_filters)
y_hh_hat = entropy_bottleneck.decompress(string_hh,y_hh_shape,channels=args.num_filters)
x_ll_hat = decoder(y_ll_hat)
x_lh_hat = decoder(y_lh_hat)
x_hl_hat = decoder(y_hl_hat)
x_hh_hat = decoder(y_hh_hat)
p_ff_hat=prediction(x_ll_hat)
x_lh_hat= x_lh_hat p_ff_hat #here when i do the operation without add of p_ff_hat variable
x_hl_hat= x_hl_hat p_ff_hat #it look fine but in addition of the variable these line of code
x_hh_hat= x_hh_hat p_ff_hat #execute but the error i got in last session. i mention
# Remove batch dimension, and crop away any extraneous padding on the bottom
x_ll_hat = x_ll_hat[0, :x_ll_shape[0], :x_ll_shape[1], :]
x_lh_hat = x_lh_hat[0, :x_lh_shape[0], :x_lh_shape[1], :]
x_hl_hat = x_hl_hat[0, :x_hl_shape[0], :x_hl_shape[1], :]
x_hh_hat = x_hh_hat[0, :x_hh_shape[0], :x_hh_shape[1], :]
op_ll = write_png(args.output_file 'll', x_ll_hat)
op_lh = write_png(args.output_file 'lh', x_lh_hat)
op_hl = write_png(args.output_file 'hl', x_hl_hat)
op_hh = write_png(args.output_file 'hh', x_hh_hat)
# Load the latest model checkpoint, and perform the above actions.
with tf.Session() as sess:
latest = tf.train.latest_checkpoint(checkpoint_dir=args.checkpoint_dir)
tf.train.Saver().restore(sess, save_path=latest)
sess.run(op_ll, feed_dict=dict(zip(tensors_ll, arrays_ll)))
sess.run(op_lh, feed_dict=dict(zip(tensors_lh, arrays_lh))) #here I got the error
sess.run(op_hl, feed_dict=dict(zip(tensors_hl, arrays_hl)))
sess.run(op_hh, feed_dict=dict(zip(tensors_hh, arrays_hh)))
Ошибка, которую я получаю, заключается в следующем:
Я застрял здесь, так как через две недели ваша помощь будет действительно оценена и много для меня значит. Спасибо
найдено 2 корневых ошибки.
(0) Недопустимый аргумент: вы должны ввести значение для тензора-заполнителя ‘Placeholder’ с помощью строки dtype и формы [1][[Заполнитель узла (определен в home/image902/Desktop/compression-master/models/wavelet.py:783) ]]]
(1) Недопустимый аргумент: Вы должны ввести значение для тензора-заполнителя ‘Placeholder’ с помощью строки dtype и формы [1] [[Заполнитель узла (определен в home/image902/Desktop/compression-master/models/wavelet.py:783) ]] [[entropy_bottleneck_1/распаковка/TensorArray_1/_217]]
0 успешных операций.
0 производных ошибок игнорируется.
Исходная трассировка стека для ‘Placeholder’:
File «usr/lib/python3.6/runpy.py «, строка 193, в файле _run_module_as_main «main«, mod_spec)
«usr/lib/python3.6/runpy.py «, строка 85, в файле _run_code
exec(code, run_globals)
«home/image902/.vscode/extensions/ms-python.python 2020.9.114305/pythonFiles/lib/python/debugpy/main.py «, строка45, в
файле cli.main()
«home/image902/.vscode/extensions/ms-python.python-2020.9.114305/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py» , строка 430, в основном
файле run()
«home/image902/.vscode/extensions/ms-python.python-2020.9.114305/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py» , строка 267, в файле run_file
runpy.run_path(options.target,run_name=compat.force_str(«main«))
File «usr/lib/python3.6/runpy.py «, строка 263, в файле run_path pkg_name=pkg_name, script_name=fname)
«usr/lib/python3.6/runpy.py «, строка 96, в файле _run_module_code mod_name, mod_spec, pkg_name, script_name)
«usr/lib/python3.6/runpy.py «, строка 85, в файле _run_code
exec(code, run_globals)
«home/image902/Desktop/compression-master/models/wavelet.py «, строка 1046,в
основном файле (args)
«home/image902/Desktop/compression-master/models/wavelet.py «, строка 991, в основном
распаковать (args)
файл «home/image902/Desktop/compression-master/models/wavelet.py «, строка 783, в распаковке
Комментарии:
1. Было бы лучше, если бы вы описали свой код более подробно, имена переменных действительно сбивают с толку, кажется, что тензор
op_lh
имеет неправильный тип, но почему я могу только догадываться, вы должны проверить,write_png
выполняется ли он должным образом2. Я предоставляю весь свой код. здесь каждый шаг я повторяю только для четырех частотного поддиапазона вейвлет-преобразования. вот почему код кажется немного запутанным.