为什么我得到函数调用堆栈:train_function 错误

时间:2020-12-30 17:03:42

标签: python tensorflow keras neural-network artificial-intelligence

我正在尝试训练一个简单的神经网络,但出现此错误,我尝试了在类似问题中找到的其他一些答案,但没有奏效。我想在 TYPE=0 或 TYPE=1 之间进行分类。最后的链接中是我的训练数据集示例。

tensorflow.python.framework.errors_impl.UnimplementedError:  Cast string to float is not supported
     [[node sequential/Cast (defined at /Users/Administrator/Desktop/New folder/ne.py:31) ]] [Op:__inference_train_function_587]

Function call stack:
train_function

这是我的神经网络代码

 model = keras.Sequential([
    keras.layers.Dense(1560, input_shape=(6,), activation='relu'),
    keras.layers.Dense(1, activation='sigmoid')
])

    model.compile(optimizer='adam', loss=keras.losses.BinaryCrossentropy(from_logits=True), metrics=['accuracy'])
    
    model.fit(X_train, y_train, batch_size=1,epochs=5)

Here is an example of my dataset 以 excel 格式希望对您有所帮助

        MPF      MF    PSD   F95    BMI  PARITY TYPE
e001_1  0.0048  0.005   6   0.008   27.6    2   1
e001_2  0.0077  0.005   6   0.008   27.6    2   1
e001_3  0.004   0.005   6   0.008   27.6    2   1
e001_4  0.0024  0.004   6   0.008   27.6    2   1
e001_5  0.0025  0.004   6   0.008   27.6    2   1
e001_6  0.0034  0.004   6   0.008   27.6    2   1
e003_1o 7.52E-04    5.45E-04    6   0.001089918 34  0   0
e003_1o 5.31E-04    5.45E-04    6   0.001089918 34  0   0
e003_1o 6.49E-04    5.45E-04    6   0.001089918 34  0   0
e003_1o 9.98E-04    5.45E-04    6   0.001089918 34  0   0
e003_1o 0.001258642 5.45E-04    6   0.001089918 34  0   0
e003_1o 5.76E-04    5.45E-04    6   0.001089918 34  0   0

1 个答案:

答案 0 :(得分:0)

您没有提供加载 csv 文件的方式,因此很难确切知道发生了什么。

我稍微修改了您的代码并使用 Pandas 加载数据,它确实有效。

这是代码

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.layers.experimental import preprocessing
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
import datetime

example_ds = pd.read_csv(
    "Example.csv")

print(example_ds)

y_train = example_ds.loc[:, 'TYPE']
x_train = example_ds.loc[:, 'MPF': 'PARITY']

model = keras.Sequential([
    keras.layers.Dense(1560, input_shape=(6,), activation='relu'),
    keras.layers.Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss=keras.losses.BinaryCrossentropy(from_logits=True), metrics=['accuracy'])
    
model.fit(x_train, y_train, batch_size=1,epochs=5)