Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在运行以下命令之后;“培训模式”;我得到这个错误_Python_Tensorflow_Machine Learning_Deep Learning_Jupyter Notebook - Fatal编程技术网

Python 在运行以下命令之后;“培训模式”;我得到这个错误

Python 在运行以下命令之后;“培训模式”;我得到这个错误,python,tensorflow,machine-learning,deep-learning,jupyter-notebook,Python,Tensorflow,Machine Learning,Deep Learning,Jupyter Notebook,创建此模型后,我收到一个错误“unsupported callable” 错误: TypeError:不支持的可调用 该错误是因为访问精度的正确键为精度(小写为a) 为了了解发生了什么,您可以打印result的值 如果我们执行命令,print(result),输出将是 {'accuracy': 0.7386364, 'accuracy_baseline': 0.625, 'auc': 0.83783287, 'auc_precision_recall': 0.78672063, 'av

创建此模型后,我收到一个错误“unsupported callable”

错误:

TypeError:不支持的可调用


该错误是因为访问
精度
的正确键为
精度
(小写为a)

为了了解发生了什么,您可以打印
result
的值

如果我们执行命令,
print(result)
,输出将是

{'accuracy': 0.7386364, 'accuracy_baseline': 0.625, 'auc': 0.83783287, 
    'auc_precision_recall': 0.78672063, 'average_loss': 0.47509083, 'label/mean': 0.375, 
    'loss': 0.46859953, 'precision': 0.64705884, 'prediction/mean': 0.39348394, 
'recall': 0.6666667, 'global_step': 200}
可以使用
结果['accurity']
访问精度

完整的工作代码如下所示:

import os
import sys

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from IPython.display import clear_output
from six.moves import urllib

import tensorflow.compat.v2.feature_column as fc

import tensorflow as tf

# Load dataset.
dftrain = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv')
dfeval = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/eval.csv')
y_train = dftrain.pop('survived')
y_eval = dfeval.pop('survived')

CATEGORICAL_COLUMNS = ['sex', 'n_siblings_spouses', 'parch', 'class', 'deck',
                       'embark_town', 'alone']
NUMERIC_COLUMNS = ['age', 'fare']

feature_columns = []
for feature_name in CATEGORICAL_COLUMNS:
  vocabulary = dftrain[feature_name].unique()
  feature_columns.append(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary))

for feature_name in NUMERIC_COLUMNS:
  feature_columns.append(tf.feature_column.numeric_column(feature_name, dtype=tf.float32))

def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=32):
  def input_function():
    ds = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))
    if shuffle:
      ds = ds.shuffle(1000)
    ds = ds.batch(batch_size).repeat(num_epochs)
    return ds
  return input_function

train_input_fn = make_input_fn(dftrain, y_train)
eval_input_fn = make_input_fn(dfeval, y_eval, num_epochs=1, shuffle=False)

ds = make_input_fn(dftrain, y_train, batch_size=10)()
for feature_batch, label_batch in ds.take(1):
  print('Some feature keys:', list(feature_batch.keys()))
  print()
  print('A batch of class:', feature_batch['class'].numpy())
  print()
  print('A batch of Labels:', label_batch.numpy())

age_column = feature_columns[7]
tf.keras.layers.DenseFeatures([age_column])(feature_batch).numpy()

gender_column = feature_columns[0]
tf.keras.layers.DenseFeatures([tf.feature_column.indicator_column(gender_column)])(feature_batch).numpy()

linear_est = tf.estimator.LinearClassifier(feature_columns=feature_columns)
linear_est.train(train_input_fn)
result = linear_est.evaluate(eval_input_fn)

clear_output()
print(result)

print(result['accuracy'])
上述代码的输出为:

{'accuracy': 0.7348485, 'accuracy_baseline': 0.625, 'auc': 0.8331497, 'auc_precision_recall': 0.7953714, 'average_loss': 0.47750932, 'label/mean': 0.375, 'loss': 0.47087723, 'precision': 0.6407767, 'prediction/mean': 0.4067955, 'recall': 0.6666667, 'global_step': 200}

0.7348485
有关更多详细信息,请参阅此


希望这有帮助。学习愉快

该错误是因为访问
精度
的正确键是
精度
(小写为a)

为了了解发生了什么,您可以打印
result
的值

如果我们执行命令,
print(result)
,输出将是

{'accuracy': 0.7386364, 'accuracy_baseline': 0.625, 'auc': 0.83783287, 
    'auc_precision_recall': 0.78672063, 'average_loss': 0.47509083, 'label/mean': 0.375, 
    'loss': 0.46859953, 'precision': 0.64705884, 'prediction/mean': 0.39348394, 
'recall': 0.6666667, 'global_step': 200}
可以使用
结果['accurity']
访问精度

完整的工作代码如下所示:

import os
import sys

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from IPython.display import clear_output
from six.moves import urllib

import tensorflow.compat.v2.feature_column as fc

import tensorflow as tf

# Load dataset.
dftrain = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv')
dfeval = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/eval.csv')
y_train = dftrain.pop('survived')
y_eval = dfeval.pop('survived')

CATEGORICAL_COLUMNS = ['sex', 'n_siblings_spouses', 'parch', 'class', 'deck',
                       'embark_town', 'alone']
NUMERIC_COLUMNS = ['age', 'fare']

feature_columns = []
for feature_name in CATEGORICAL_COLUMNS:
  vocabulary = dftrain[feature_name].unique()
  feature_columns.append(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary))

for feature_name in NUMERIC_COLUMNS:
  feature_columns.append(tf.feature_column.numeric_column(feature_name, dtype=tf.float32))

def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=32):
  def input_function():
    ds = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))
    if shuffle:
      ds = ds.shuffle(1000)
    ds = ds.batch(batch_size).repeat(num_epochs)
    return ds
  return input_function

train_input_fn = make_input_fn(dftrain, y_train)
eval_input_fn = make_input_fn(dfeval, y_eval, num_epochs=1, shuffle=False)

ds = make_input_fn(dftrain, y_train, batch_size=10)()
for feature_batch, label_batch in ds.take(1):
  print('Some feature keys:', list(feature_batch.keys()))
  print()
  print('A batch of class:', feature_batch['class'].numpy())
  print()
  print('A batch of Labels:', label_batch.numpy())

age_column = feature_columns[7]
tf.keras.layers.DenseFeatures([age_column])(feature_batch).numpy()

gender_column = feature_columns[0]
tf.keras.layers.DenseFeatures([tf.feature_column.indicator_column(gender_column)])(feature_batch).numpy()

linear_est = tf.estimator.LinearClassifier(feature_columns=feature_columns)
linear_est.train(train_input_fn)
result = linear_est.evaluate(eval_input_fn)

clear_output()
print(result)

print(result['accuracy'])
上述代码的输出为:

{'accuracy': 0.7348485, 'accuracy_baseline': 0.625, 'auc': 0.8331497, 'auc_precision_recall': 0.7953714, 'average_loss': 0.47750932, 'label/mean': 0.375, 'loss': 0.47087723, 'precision': 0.6407767, 'prediction/mean': 0.4067955, 'recall': 0.6666667, 'global_step': 200}

0.7348485
有关更多详细信息,请参阅此

希望这有帮助。学习愉快