当前位置: 首页 > 知识库问答 >
问题:

google colab中的Tensorflow估计器错误

曹钊
2023-03-14

我正在谷歌 colab 环境中的 tensorflow 中训练一个 DNN,代码直到昨天都运行良好,但现在当我运行代码的估计器训练部分时,它给出了一个错误。

我不知道到底是什么原因,谷歌colab是否使用任何更新版本的tensorflow,其中某些函数与旧版本不兼容?因为我之前的代码没有问题,我没有改变它。似乎其他代码也存在此问题,例如,斯坦福大学的此示例代码之前运行没有任何错误,https://colab.research.google.com/drive/1nG7Ga46jrWF5n7pHe0FK6anB0pLNgBVt

但是现在当您运行该部分时:

estimator.train(input_fn=train_input_fn, steps=1000);

它给出了和我一样的错误:

> **TypeError                                 Traceback (most recent call last)
> /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/tensor_util.py
> in make_tensor_proto(values, dtype, shape, verify_shape)**
> 
> **TypeError: Expected binary or unicode string, got {'sent_symbol': <tf.Tensor 'random_shuffle_queue_DequeueMany:3' shape=(128,)
> dtype=int64>}**
> 
> **TypeError                                 Traceback (most recent call last) <ipython-input-10-9dfe23a4bf62> in <module>()
> ----> 1 estimator.train(input_fn=train_input_fn, steps=1000);**
> 
> **TypeError: Failed to convert object of type <class 'dict'> to Tensor. Contents: {'sent_symbol': <tf.Tensor
> 'random_shuffle_queue_DequeueMany:3' shape=(128,) dtype=int64>}.
> Consider casting elements to a supported type.**

共有1个答案

董昕
2023-03-14

方法< code > TF . estimator . inputs . Pandas _ input _ fn 的< code>y属性接收Pandas 系列对象的输入。

要从数据帧中提取目标' sent_symbol ',请调用< code > training _ labels[' sent _ symbol ']。

要修复此脚本,请按如下方式修改代码:

# Training input on the whole training set with no limit on training epochs.
train_input_fn = tf.estimator.inputs.pandas_input_fn(
    training_examples, training_labels['sent_symbol'], num_epochs=None, shuffle=True)

# Prediction on the whole training set.
predict_train_input_fn = tf.estimator.inputs.pandas_input_fn(
    training_examples, training_labels['sent_symbol'], shuffle=False)
# Prediction on the test set.
predict_test_input_fn = tf.estimator.inputs.pandas_input_fn(
    validation_examples, validation_labels['sent_symbol'], shuffle=False)
 类似资料:
  • 更新:在我的个人电脑和谷歌云上测试相同的代码,使用tenstorflow gpu 1.13.1工作。 使用TensorFlow估计器和运行train_and_evaluate给我以下错误消息: "ValueError: Tensor("Const: 0",form=(3,),dtype=Float32)必须来自与Tensor("ParallelMapDataset: 0",form=(),dtyp

  • 我正在尝试使用我们自己的CSV数据集运行本教程的训练模型,其中每一行由4个int值(最后一个是标签)组成,距离使用TensorFlow Serving: 我正在远处使用Docker运行TensorFlow Serving,我的开发环境是使用Python 3.6的Windows。 我使用以下代码导出模型,类似于此处给出的示例: 老实说,我不确定会有什么样的结果,但是在本指南中,half _ plus

  • 我想建立一个lstm模型。但我正在得到

  • 有人有使用tensorflow estimator API进行混合精度训练的经验吗? 我尝试将输入转换为tf.float16,并将网络结果转换回tf.float32。为了扩展损失,我使用了tf.contrib.mixed_precision.LossScaleOptimizer。

  • 我想将ptb_word_lm.py示例中的损失函数更改为。查看实现: 我想啊 第三个参数(输入)是语言模型的logits, 第四个参数(标签)是语言模型的下一个单词(self.\u targets) num_classes是语音大小 但我不知道前两个参数是什么,权重和偏差。我如何适应到语言模型?谢谢 @亚伦: 谢谢,我尝试了以下方法: 根据这里的文件: > 偏差:形状的张量[num_类]。阶级偏见

  • 我每一步都能得到训练损失。但我确实想在tensorboard中的图'lossxx'中添加评估损失。怎么做?