手写数字分类教程属性错误/缺失

2024-06-26 14:48:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我遵循Classifying Handwritten Digits with TF.Learn的教程

教程的最后一部分是我遇到的问题。似乎classifier.weights_已经不存在了。在

这是错误消息:AttributeError: 'LinearClassifier' object has no attribute 'weights_'

weights = classifier.weights_
f, axes = plt.subplots(2, 5, figsize=(10,4))
axes = axes.reshape(-1)
for i in range(len(axes)):
    a = axes[i]
    a.imshow(weights.T[i].reshape(28, 28), cmap=plt.cm.seismic)
    a.set_title(i)
    a.set_xticks(()) # ticks be gone
    a.set_yticks(())
plt.show()

Tags: 消息tf错误with教程pltlearnset
1条回答
网友
1楼 · 发布于 2024-06-26 14:48:08

TensorFlow在过去的几年里变化很快,任何使用1.0之前版本的东西都可能过时。LinearClassifier.weights_属性已被删除,似乎没有与之完全匹配的属性。您可以做的是请求变量列表,然后传递想要的变量weights。为此,请使用

for var in classifier.get_variable_names():
    print("var:", var, "=", classifier.get_variable_value(var))

在我的例子中,这给了我三个权重变量,分别是“linear//weight”、“linear//weight/d/linear//weight/part_0/Ftrl”和“linear//weight/d/linear//weight/part_0/Ftrl_1”,以及其他一些东西。这些张量相当大,所以它们的值仅以缩写形式显示。然后可以将其中一个传递给weights

^{pr2}$

你应该会看到类似教程中的图片。它们三个都很相似,但不一样,所以LinearClassifier可能在做比以前更复杂的事情。在

相关问题 更多 >