每次我运行以下代码时,在训练模型时都会得到不同的“最终步骤损失”。随后的评估准确性也会改变。我检查了来自train_test_split的输入数据是否恒定。我已经设置了tf.random_seed的值,关闭了改组并设置了num_threads的值。我正在使用Tensorflow 1.8。谁能建议我我还需要做什么?
from __future__ import print_function
import numpy as np
import pandas as pd
import tensorflow as tf
from sklearn.model_selection import train_test_split
np.random.seed(1)
tf.set_random_seed(1)
df = pd.read_csv('diabetes.csv')
X = df.iloc[:,0:8]
y = df['Outcome']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
stratify=None, random_state=1)
def create_feature_cols():
return [
tf.feature_column.numeric_column('Pregnancies'),
tf.feature_column.numeric_column('Glucose'),
tf.feature_column.numeric_column('BloodPressure'),
tf.feature_column.numeric_column('SkinThickness'),
tf.feature_column.numeric_column('Insulin'),
tf.feature_column.numeric_column('BMI'),
tf.feature_column.numeric_column('DiabetesPedigreeFunction'),
tf.feature_column.numeric_column('Age')
]
input_func = tf.estimator.inputs.pandas_input_fn(x=X_train,y=y_train,
batch_size=10,num_epochs=1000,shuffle=False,num_threads=1)
model = tf.estimator.DNNClassifier(hidden_units=[20,20],
feature_columns=create_feature_cols(),n_classes=2)
model.train(input_fn=input_func,steps=1000)
eval_input_func = tf.estimator.inputs.pandas_input_fn(
x=X_test,
y=y_test,
batch_size=10,
num_epochs=1,
shuffle=False,
num_threads=1)
results = model.evaluate(eval_input_func)`
答案 0 :(得分:0)
这是TensorFlow发送给我的一些代码来解决该问题。而不是使用tf.set_random_seed,而是使用tf.estimator.RunConfig与估算器。
import numpy as np
from PIL import Image
img = Image.open('orig.png').convert('RGBA')
arr = np.array(img)
# make a 1-dimensional view of arr
flat_arr = arr.ravel()