训练多维数据时出错

我正在尝试构建一个简单的测试,只是为了了解如何训练每个特征都是多维的数据。

我试图构建一个包含6个特征的数据集。每个特征的形状都是多维的

简单代码:

    import random    import numpy as np    import pandas as pd    from keras.models import Sequential    from keras.layers import Dense, Dropout    from sklearn.model_selection import train_test_split    from keras.utils import to_categorical    from sklearn.preprocessing import LabelEncoder    #     # 步骤1 - 构建随机多维特征(每个特征都是具有随机值的多维)    #    df = pd.DataFrame(columns=['m', 'c', 'mm', 'cc', 't', 'target'])    input_list = []    for i in range (800):        m = np.random.rand(10,20, 5, 5)        c = np.random.rand(10, 3)        mm = np.random.rand(10)        cc = np.random.rand(20, 5, 6, 2)        t = np.random.rand(10, 3)        dict = {'m': mfccs,                'c': chroma,                'mm': mel,                'cc': contrast,                't': tonnetz,                'target': random.randint(1, 3)}        input_list.append(dict)    df = df.append(input_list, ignore_index=True)    df = df.reset_index()    #    # 步骤2 - 分割为训练和测试集    #     train, test = train_test_split(df, test_size=0.2)    x_train = train.to_numpy()[:,0:6]    y_train = train.to_numpy()[:,6]    x_test = test.to_numpy()[:, 0:6]    y_test = test.to_numpy()[:, 6]    lb = LabelEncoder()    y_train_hot = to_categorical(lb.fit_transform(y_train))    y_test_hot = to_categorical(lb.fit_transform(y_test))        #    # 步骤3 - 构建简单模型    #    model = Sequential()    model.add(Dense(50, input_shape=(6,), activation='relu'))    model.add(Dropout(0.1))    model.add(Dense(128, activation='relu'))    model.add(Dropout(0.25))    model.add(Dense(128, activation='relu'))    model.add(Dropout(0.5))    model.add(Dense(3, activation='softmax'))    model.compile(loss='categorical_crossentropy', metrics=['accuracy'], optimizer='adam')    #    # 步骤4 - 尝试拟合模型    #    model.fit(x_train, y_train_hot, batch_size=20, epochs=20, verbose=1, validation_data=(x_test, y_test_hot))

我遇到了以下错误:

ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).

完整的错误追踪:

Traceback (most recent call last):  File "/home/ubadmin/PycharmProjects/VR/models/tests/multi_dim_test.py", line 74, in <module>    main()  File "/home/ubadmin/PycharmProjects/VR/models/tests/multi_dim_test.py", line 62, in main    model.fit(x_train, y_train_hot, batch_size=20, epochs=20, verbose=1, validation_data=(x_test, y_test_hot))  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py", line 108, in _method_wrapper    return method(self, *args, **kwargs)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py", line 1063, in fit    steps_per_execution=self._steps_per_execution)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/keras/engine/data_adapter.py", line 1117, in __init__    model=model)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/keras/engine/data_adapter.py", line 265, in __init__    x, y, sample_weights = _process_tensorlike((x, y, sample_weights))  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/keras/engine/data_adapter.py", line 1021, in _process_tensorlike    inputs = nest.map_structure(_convert_numpy_and_scipy, inputs)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/util/nest.py", line 635, in map_structure    structure[0], [func(*x) for x in entries],  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/util/nest.py", line 635, in <listcomp>    structure[0], [func(*x) for x in entries],  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/keras/engine/data_adapter.py", line 1016, in _convert_numpy_and_scipy    return ops.convert_to_tensor(x, dtype=dtype)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1499, in convert_to_tensor    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/framework/tensor_conversion_registry.py", line 52, in _default_conversion_function    return constant_op.constant(value, dtype, name=name)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py", line 264, in constant    allow_broadcast=True)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py", line 275, in _constant_impl    return _constant_eager_impl(ctx, value, dtype, shape, verify_shape)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py", line 300, in _constant_eager_impl    t = convert_to_eager_tensor(value, ctx, dtype)  File "/home/ubadmin/VR/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py", line 98, in convert_to_eager_tensor    return ops.EagerTensor(value, ctx.device_name, dtype)ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int).
  • 我遗漏了什么?(如何修复代码?)

  • 如何训练每个特征包含多维数据的模型?


回答:

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中创建了一个多类分类项目。该项目可以对…

发表回复

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