Я получаю correct_eval как 0. Я использовал бостонский набор данных. Разделены на обучение и тестирование. Используется тензор потока для обучения модели. (Не керас). Нейронные сети состоят из 2 скрытых слоев размером 13 каждый и входной размер также равен 13.
import pandas as pd
import numpy as np
data=pd.read_csv("Boston_Housing.csv")
x=data.iloc[:,0:13]
x=np.array(x)
y=data.iloc[:,13]
y=np.array(y)
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y)
import tensorflow as tf
tf.__version__
input_width=13;
num_layers=2
n_hidden_layer1=13
n_hidden_layer2=13
n_op=1
weights={
"w_h1":tf.Variable(tf.random_normal([input_width,n_hidden_layer1])),
"w_h2":tf.Variable(tf.random_normal([n_hidden_layer1,n_hidden_layer2])),
"w_op":tf.Variable(tf.random_normal([n_hidden_layer2,n_op]))
}
biases={
"b_h1":tf.Variable(tf.random_normal([n_hidden_layer1])),
"b_h2":tf.Variable(tf.random_normal([n_hidden_layer2])),
"b_op":tf.Variable(tf.random_normal([n_op]))
}
tf.trainable_variables()
def forwardPropagation(x,weights,biases):
ip_h1=tf.add(tf.matmul(x,weights['w_h1']),biases['b_h1'])
op_h1=tf.nn.relu(ip_h1)
ip_h2=tf.add(tf.matmul(op_h1,weights['w_h2']),biases['b_h2'])
op_h2=tf.nn.relu(ip_h2)
ip_op=tf.add(tf.matmul(op_h2,weights['w_op']),biases['b_op'])
op_op=tf.nn.relu(ip_op)
return op_op
s=tf.Session()
s.run(tf.global_variables_initializer())
x=tf.placeholder("float",[None,input_width])
y=tf.placeholder("float",[None,n_op])
pred=forwardPropagation(x,weights,biases)
correct_pred=tf.equal(pred,y_train)
pred_eval,correct_eval=s.run([pred,correct_pred],feed_dict={x:x_train,y:y_train})
pred_eval,correct_eval
correct_eval.sum()
correct_eval
correct_eval равен 0. Это означает, что прогноз не верен. значения pred в основном равны 0 или полностью случайны. пожалуйста, помогите мне решить эту проблему.