我正在尝试使用输入为字符串张量作为输入的TF模型,我的模型包含一个TextVectorization层用于文本处理,这在TF 2.2中可用。
培训在W&B回调中失败,并出现以下错误
TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
调试时,我发现问题出在权重直方图的计算中
> /usr/local/lib/python3.6/dist-packages/numpy/lib/histograms.py(325)_get_outer_edges()
323 else:
324 first_edge, last_edge = a.min(), a.max()
--> 325 if not (np.isfinite(first_edge) and np.isfinite(last_edge)):
326 raise ValueError(
327 "autodetected range of [{}, {}] is not finite".format(first_edge, last_edge))
ipdb> first_edge
b'0'
ipdb> last_edge
b'zurich'
ipdb> np.isfinite('0')
*** TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
这是我设置W&B回调并进行培训的方式
wandb_callback = wandb.keras.WandbCallback(log_weights=True)
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
model.fit(train_ds, validation_data=valid_ds, epochs=config.epochs, shuffle=True, verbose=1, callbacks=[wandb_callback])
我尝试使用wandb.keras.WandbCallback()
创建回调,但没有记录权重,但存在相同的问题,它一直尝试计算直方图,并在某个时期结束时失败。
有什么想法吗?
答案 0 :(得分:0)
可以共享您的实际模型代码吗?看起来模型本身包含字符串张量。通常,在通过网络之前,您需要将字符串转换为嵌入。您正在使用TensorFlow 2吗?