【问题标题】:TensorFlow:Failed to convert a NumPy array to a Tensor (Unsupported object type int)TensorFlow:无法将 NumPy 数组转换为张量(不支持的对象类型 int)
【发布时间】:2021-03-14 00:15:55
【问题描述】:

我正在练习这个关于汽车价格预测的 kaggle 数据集 (https://www.kaggle.com/hellbuoy/car-price-prediction)。我不知道为什么会收到此错误。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from tensorflow.keras import layers,models

cars_data=pd.read_csv('/content/CarPrice_Assignment.csv')
cars_data.head()

cars_data.info()

cars_data.describe()

train_data=cars_data.iloc[:103]
train_data=train_data.drop('price',axis=1)
train_data=np.asarray(train_data.values)

train_targets=cars_data.price.iloc[:103]
train_targets=np.asarray(train_targets)

test_data=cars_data.iloc[103:165]
test_data=test_data.drop('price',axis=1)
test_data=np.asarray(test_data.values)

test_targets=cars_data.price.iloc[103:165]
test_targets=np.asarray(test_targets)

val_data=cars_data.iloc[165:]
val_data=val_data.drop('price',axis=1)
val_data=np.asarray(val_data.values)

val_targets=cars_data.price.iloc[165:]
val_targets=np.asarray(val_targets)


model=models.Sequential()
model.add(layers.Dense(10,activation='relu',input_shape=(25,)))
model.add(layers.Dense(8,activation='relu'))
model.add(layers.Dense(6,activation='relu'))
model.add(layers.Dense(1))
model.compile(optimizer='rmsprop',loss='mse',metrics=['mae'])
model.fit(train_data,train_targets,epochs=20,batch_size=1)

【问题讨论】:

  • 你看过那个 .csv 数据了吗?我认为有些列可能是一个字符串,并且该字符串会引发错误。
  • @yakhyo 感谢您的回复。我已经看过了。有一些分类数据类型。所以我该怎么做?使用 to_Categorial() 对其进行分类?
  • 我认为您应该将它们更改为分类

标签: tensorflow machine-learning keras deep-learning


【解决方案1】:

您需要在代码中解决两件事。

  1. 分类变量
    通过打印 train_data 的值,我可以看到仍然有一些字符串形式的分类变量。 TensorFlow 不能直接处理那种数据,所以你需要处理分类变量。查看来自Best way to deal with categorical variables in regression problem - python 的答案作为您的起点。
  2. 目标形状
    您的 train_targets 形状为 (107,) 意味着这是一个一维数组。张量流输入的正确形状(对于简单回归问题)是(107,1)。像这样修改您的代码以重塑值: train_targets=np.asarray(train_targets).reshape(-1,1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 2020-12-08
    • 2020-02-26
    • 2021-04-18
    • 2020-10-15
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多