找不到节点的有效设备。节点:{{node OneHot}}

问题描述 投票:0回答:0

我正在尝试使用以下函数为神经协同过滤生成训练批次,但出现以下错误。

def batch_generator(x, y, batch_size, n_batch, shuffle, user_dim, item_dim):
""" batch generator to supply data for training and testing """

user_df, item_df = x

counter = 0
training_index = np.arange(user_df.shape[0])

if shuffle:
    np.random.shuffle(training_index)

while True:
    batch_index = training_index[batch_size*counter:batch_size*(counter+1)]
    user_batch = tf.one_hot(user_df[batch_index], depth=user_dim)
    item_batch = tf.one_hot(item_df[batch_index], depth=item_dim)
    y_batch = y[batch_index]

    counter += 1
    yield [user_batch, item_batch], y_batch

    if counter == n_batch:
        if shuffle:
            np.random.shuffle(training_index)
        counter = 0

这给了我以下错误“无法找到节点的有效设备。节点:{{node OneHot}}”

    tensorflow.python.framework.errors_impl.NotFoundError: Could not find valid device for node.
Node:{{node OneHot}}
All kernels registered for op OneHot :
  device='XLA_CPU'; TI in [DT_INT32, DT_UINT8, DT_INT64]; T in [DT_FLOAT, DT_DOUBLE, DT_INT32, DT_UINT8, DT_INT16, ..., DT_UINT16, DT_COMPLEX128, DT_HALF, DT_UINT32, DT_UINT64]
  device='XLA_CPU_JIT'; TI in [DT_INT32, DT_UINT8, DT_INT64]; T in [DT_FLOAT, DT_DOUBLE, DT_INT32, DT_UINT8, DT_INT16, ..., DT_UINT16, DT_COMPLEX128, DT_HALF, DT_UINT32, DT_UINT64]
  device='CPU'; TI in [DT_INT64]; T in [DT_VARIANT]
  device='CPU'; TI in [DT_INT32]; T in [DT_VARIANT]
  device='CPU'; TI in [DT_UINT8]; T in [DT_VARIANT]
  device='CPU'; TI in [DT_INT64]; T in [DT_RESOURCE]
  device='CPU'; TI in [DT_INT32]; T in [DT_RESOURCE]
  device='CPU'; TI in [DT_UINT8]; T in [DT_RESOURCE]
  device='CPU'; TI in [DT_INT64]; T in [DT_STRING]
  device='CPU'; TI in [DT_INT32]; T in [DT_STRING]
  device='CPU'; TI in [DT_UINT8]; T in [DT_STRING]
  device='CPU'; TI in [DT_INT64]; T in [DT_BOOL]
  device='CPU'; TI in [DT_INT32]; T in [DT_BOOL]
  device='CPU'; TI in [DT_UINT8]; T in [DT_BOOL]
  device='CPU'; TI in [DT_INT64]; T in [DT_COMPLEX128]
  device='CPU'; TI in [DT_INT32]; T in [DT_COMPLEX128]
  device='CPU'; TI in [DT_UINT8]; T in [DT_COMPLEX128]
  device='CPU'; TI in [DT_INT64]; T in [DT_COMPLEX64]
  device='CPU'; TI in [DT_INT32]; T in [DT_COMPLEX64]
  device='CPU'; TI in [DT_UINT8]; T in [DT_COMPLEX64]
  device='CPU'; TI in [DT_INT64]; T in [DT_DOUBLE]
  device='CPU'; TI in [DT_INT32]; T in [DT_DOUBLE]
  device='CPU'; TI in [DT_UINT8]; T in [DT_DOUBLE]
  device='CPU'; TI in [DT_INT64]; T in [DT_FLOAT]
  device='CPU'; TI in [DT_INT32]; T in [DT_FLOAT]
 [Op:OneHot] name: one_hot/

非常感谢任何帮助

deep-learning neural-network amazon-sagemaker
© www.soinside.com 2019 - 2024. All rights reserved.