使用不同数据集时TensorFlow宽深模型出现AttributeError

我正在使用Kaggle的Rossmann数据集来训练一个宽深模型。代码与教程中提供的非常相似,我只是更改了用于建模的数据。

我使用的代码如下:

"""Example code for TensorFlow Wide & Deep Tutorial using TF.Learn API."""from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport argparseimport shutilimport sysimport tempfileimport pandas as pdfrom six.moves import urllibimport tensorflow as tfCSV_COLUMNS = [    'Store', 'DayOfWeek',  'Sales', 'Customers', 'Open', 'Promo',    'StateHoliday', 'SchoolHoliday', 'StoreType', 'Assortment',    'CompetitionDistance', 'trend', 'Max_TemperatureC', 'Mean_TemperatureC',    'Min_TemperatureC', 'Max_Humidity', 'Mean_Humidity', 'Min_Humidity']StateHoliday = tf.feature_column.categorical_column_with_vocabulary_list(    "StateHoliday", ["True", "False"])StoreType = tf.feature_column.categorical_column_with_vocabulary_list(    "StoreType", ['c', 'a', 'd', 'b'])Assortment = tf.feature_column.categorical_column_with_vocabulary_list(    "Assortment", ['c', 'a', 'b'])CompetitionDistance = tf.feature_column.categorical_column_with_hash_bucket(    "CompetitionDistance", hash_bucket_size=1000)Customers = tf.feature_column.categorical_column_with_hash_bucket(    "Customers", hash_bucket_size=1000)Store = tf.feature_column.categorical_column_with_hash_bucket(    "Store", hash_bucket_size=1000)trend = tf.feature_column.numeric_column("trend")Max_TemperatureC = tf.feature_column.numeric_column("Max_TemperatureC")Mean_TemperatureC = tf.feature_column.numeric_column("Mean_TemperatureC")Min_TemperatureC = tf.feature_column.numeric_column("Min_TemperatureC")Max_Humidity = tf.feature_column.numeric_column("Max_Humidity")Mean_Humidity = tf.feature_column.numeric_column("Mean_Humidity")Min_Humidity = tf.feature_column.numeric_column("Min_Humidity")crossed_columns = [    tf.feature_column.crossed_column(        ["Assortment", "StoreType"], hash_bucket_size=1000)]deep_columns = [    tf.feature_column.indicator_column("DayOfWeek"),    tf.feature_column.indicator_column("Open"),    tf.feature_column.indicator_column("Promo"),    tf.feature_column.indicator_column("StateHoliday"),    tf.feature_column.indicator_column("SchoolHoliday"),    tf.feature_column.indicator_column("StoreType"),    tf.feature_column.indicator_column("Assortment"),    # To show an example of embedding    tf.feature_column.embedding_column("CompetitionDistance", dimension=8),    tf.feature_column.embedding_column("Customers", dimension=8),    tf.feature_column.embedding_column("Store", dimension=8),    trend,    Max_TemperatureC,    Mean_TemperatureC,    Min_TemperatureC,    Max_Humidity,    Mean_Humidity,    Min_Humidity]def build_estimator(model_dir):    """Build an estimator."""    m = tf.estimator.DNNLinearCombinedClassifier(        model_dir=model_dir,        linear_feature_columns=crossed_columns,        dnn_feature_columns=deep_columns,        dnn_hidden_units=[100, 50])    return mdef input_fn(data_file, num_epochs, shuffle):    df_data = pd.read_csv(        "D:/Rossmann/Rossmann_Data/" + data_file + ".csv",        names=CSV_COLUMNS,        skipinitialspace=True,        engine="python",        skiprows=1)    # remove NaN elements    df_data = df_data.dropna(how="any", axis=0)    print(df_data.dtypes)    df_data = df_data.sort(['Sales'], ascending=[True])    labels = df_data["Sales"].apply(lambda x: 1 if x >= 20000 else 0)    return tf.estimator.inputs.pandas_input_fn(        x=df_data,        y=labels,        batch_size=100,        num_epochs=num_epochs,        shuffle=shuffle,        num_threads=5)model_dir = "D:/Rossmann/Rossmann_Data"m = build_estimator(model_dir)m.train(    input_fn=input_fn("df1", num_epochs=None, shuffle=True),    steps=2000)

但不幸的是,我遇到了以下错误。

Traceback (most recent call last):  File "timeSeriesPredictionUsingEmbedding2.py", line 121, in <module>    steps=2000)  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\estimator\estimator.py", line 241, in train    loss = self._train_model(input_fn=input_fn, hooks=hooks)  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\estimator\estimator.py", line 630, in _train_model    model_fn_lib.ModeKeys.TRAIN)  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\estimator\estimator.py", line 615, in _call_model_fn    model_fn_results = self._model_fn(features=features, **kwargs)  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\estimator\canned\dnn_linear_combined.py", line 395, in _model_fn    config=config)  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\estimator\canned\dnn_linear_combined.py", line 156, in _dnn_linear_combined_model_fn    feature_columns=dnn_feature_columns)  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\feature_column\feature_column.py", line 207, in input_layer    _check_feature_columns(feature_columns)  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\feature_column\feature_column.py", line 1662, in _check_feature_columns    if column.name in name_to_column:  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\feature_column\feature_column.py", line 2453, in name    return '{}_indicator'.format(self.categorical_column.name)AttributeError: 'str' object has no attribute 'name'

请问您能指导我一下这个错误出在哪里吗?当我运行您的代码时,它运行得非常完美。

谢谢!


回答:

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注