1
from sklearn.model_selection import train_test_split 
from sklearn.metrics import mean_squared_error 
import statistics 
import keras 
import numpy as np 
import pandas as pd 
from keras.models import Sequential 
from keras.layers import Dense 
import tensorflow as tf 
import textdistance 
import sys 
print(tf.executing_eagerly())





def custom_error_finder(y_actual,y_pred):
        print(tf.executing_eagerly())
        count = 0
        ya = ((y_actual[0].numpy()).decode())
        yp = ((y_pred[0].numpy()).decode())
        for i,j in ya,yp:
            if i!=j:
                count = count+1
        mse = pow(count,2)/len(ya)
        return mse


model = Sequential()
scraper_data = pd.read_csv("C:/Users/Desktop/Projects/Chatbot/Combined_new.csv")

scraper_data_columns = scraper_data.columns

predictors = scraper_data["Given"] 
target = scraper_data['Target'] 

X_train, X_test, y_train, y_test = train_test_split(predictors, target, test_size=0.3, random_state=42)
n_cols = predictors.shape[0]

model.add(Dense(1, activation = 'relu', input_shape = (n_cols,)))
model.add(Dense(10, activation = 'relu'))
model.add(Dense(10, activation = 'relu'))
model.add(Dense(1, activation = 'relu'))

model.compile(optimizer = 'adam',run_eagerly=True, loss = custom_error_finder)
model.run_eagerly = True
model.fit(X_train, y_train,epochs=200)
predictions = model.predict(X_test)

我对设计深度学习模型非常陌生,这实际上是我的第一个模型。

我已经定义了一个自定义错误指标,由于某种原因,我收到了这个错误:

AttributeError: 'Tensor' object has no attribute 'numpy'

我不知道这是否有帮助,但外部“print(tf.executing_eagerly())”打印“True”,而内部打印“False”。

“y_actual”是数据集中的真实值,“y_pred”是模型的预测值。

我真的很感谢我能在这方面得到的任何帮助,因为我已经研究这个模型好几个星期了。

提前致谢。

(“Given”列中包含字符串,“Target”列包含我试图从“Given”列中提取的字符串)

4

1 回答 1

0

要启用 Eager 执行,您必须使用

import TensorFlow as tf
tf.enable_eager_execution()
tf.executing_eagerly()

如需更多使用,请在此处输入链接描述

于 2020-05-12T11:16:39.987 回答