【发布时间】:2021-03-25 06:55:52
【问题描述】:
我正在尝试训练 NeRF (https://github.com/bmild/nerf),以下是我遇到的错误。我试图打印变量的数据类型。我不知道下一步该怎么做。
这是一个代码sn-p:
在 run_nerf_helpers.py 中:
def init_nerf_model(D=8, W=256, input_ch=3, input_ch_views=3, output_ch=4, skips=[4], use_viewdirs=False):
relu = tf.keras.layers.ReLU()
def dense(W, act=relu): return tf.keras.layers.Dense(W, activation=act)
print('MODEL', input_ch, input_ch_views, type(
input_ch), type(input_ch_views), use_viewdirs)
input_ch = int(input_ch)
input_ch_views = int(input_ch_views)
inputs = tf.keras.Input(shape=(input_ch + input_ch_views))
inputs_pts, inputs_views = tf.split(inputs, [input_ch, input_ch_views], -1)
inputs_pts.set_shape([None, input_ch])
inputs_views.set_shape([None, input_ch_views])
print(inputs.shape, inputs_pts.shape, inputs_views.shape)
outputs = inputs_pts
for i in range(D):
outputs = dense(W)(outputs)
if i in skips:
outputs = tf.concat([inputs_pts, outputs], -1)
在 run_nerf.py 中
def create_nerf(args):
"""Instantiate NeRF's MLP model."""
embed_fn, input_ch = get_embedder(args.multires, args.i_embed)
input_ch_views = 0
embeddirs_fn = None
if args.use_viewdirs:
embeddirs_fn, input_ch_views = get_embedder(
args.multires_views, args.i_embed)
output_ch = 4
skips = [4]
model = init_nerf_model(
D=args.netdepth, W=args.netwidth,
input_ch=input_ch, output_ch=output_ch, skips=skips,
input_ch_views=input_ch_views, use_viewdirs=args.use_viewdirs)
grad_vars = model.trainable_variables
models = {'model': model}
def create_nerf(args):
"""Instantiate NeRF's MLP model."""
embed_fn, input_ch = get_embedder(args.multires, args.i_embed)
input_ch_views = 0
embeddirs_fn = None
if args.use_viewdirs:
embeddirs_fn, input_ch_views = get_embedder(
args.multires_views, args.i_embed)
output_ch = 4
skips = [4]
model = init_nerf_model(
D=args.netdepth, W=args.netwidth,
input_ch=input_ch, output_ch=output_ch, skips=skips,
input_ch_views=input_ch_views, use_viewdirs=args.use_viewdirs)
grad_vars = model.trainable_variables
models = {'model': model}
错误:
('input_ch_views:', <type 'int'>)
('output_ch:', <type 'int'>)
('use_viewdirs:', <type 'bool'>)
('MODEL', 63, 27, <type 'int'>, <type 'int'>, True)
Traceback (most recent call last):
File "run_nerf.py", line 938, in <module>
train()
File "run_nerf.py", line 682, in train
args)
File "run_nerf.py", line 397, in create_nerf
input_ch_views=input_ch_views, use_viewdirs=args.use_viewdirs)
File "/home/nerf-master/run_nerf_helpers.py", line 90, in init_nerf_model
inputs = tf.keras.Input(shape=(input_ch + input_ch_views))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/engine/input_layer.py", line 231, in Input
input_tensor=tensor)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/engine/input_layer.py", line 91, in __init__
batch_input_shape = (batch_size,) + tuple(input_shape)
TypeError: 'int' object is not iterable
我是新手。任何帮助将非常感激。谢谢你:)
【问题讨论】:
标签: python tensorflow types neural-network training-data