python - 表格可视化未出现在 Tensorflow-PyCharm IDE 中
问题描述
我正在使用 PyCharm 社区版和 Python 3.7。通过 Anaconda,我安装了 Tensorflow 机器学习包。
我在这里关注 Google Tensorflow 回归教程,但我得到的输出有限。只有数字结果和plt
正分别显示在输出控制台和单独的窗口中。
附加链接中提到的数据表,编码为:
# Prints the stored data table in a formatted fashion (ERROR)
df = pd.DataFrame(train_data, columns = column_names)
df.head()
似乎没有生成自己的窗口,如链接所建议的那样。如何在新窗口中显示此表,就像plt
显示的一样?
这是我的 main.py:
# Importing the different libraries and packages
# Machine Learning is mainly executed by the TENSORFLOW LIBRARY
from __future__ import absolute_import, division, print_function
import tensorflow as tf
from tensorflow import keras
import numpy as np
import pandas as pd
TFVersion = tf.__version__
newline = "\n"
print(newline)
print("Current version of TensorFlow: ", TFVersion)
# Downloading the Boston Housing Data Set - it is already present in the keras
# NOTE: This will be referred to as the "BHD"
boston_housing = keras.datasets.boston_housing
# Initializing the training + testing data and labels as per the information suggested in the BHD
(train_data, train_labels), (test_data, test_labels) = boston_housing.load_data()
# Shuffle the training set in order to assure randomness - this condition is required for any statistical analysis
order = np.argsort(np.random.random(train_labels.shape))
train_data = train_data[order]
train_labels = train_labels[order]
# Printing the training and testing data sets (the .shape member function gets the examples and feature frequency
# from the train_data vector instance)
print("Training set: {}".format(train_data.shape)) # 404 examples, 13 features
print("Testing set: {}".format(test_data.shape)) # 102 examples, 13 features
# Initializing the variables/attributes for the data-set
column_names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',
'TAX', 'PTRATIO', 'B', 'LSTAT']
# Prints the stored data table in a formatted fashion (ERROR)
df = pd.DataFrame(train_data, columns = column_names)
df.head()
# Display first 10 entries
print(train_labels[0:10])
# TEST DATA is *not* used when calculating the mean and std
# Normalize data - these are basically z-scores
mean = train_data.mean(axis = 0)
std = train_data.std(axis = 0)
train_data = (train_data - mean)/std
test_data = (test_data - mean)/std
print(train_data[0]) # First training sample, normalized
def build_model():
model = keras.Sequential([
keras.layers.Dense(64, activation = tf.nn.relu,
input_shape = (train_data.shape[1],)),
keras.layers.Dense(64, activation = tf.nn.relu),
keras.layers.Dense(1)
])
optimizer = tf.train.RMSPropOptimizer(0.001)
model.compile(loss='mse',
optimizer=optimizer,
metrics=['mae'])
return model
model = build_model()
model.summary()
# Display training progress by printing a single dot for each completed epoch
class PrintDot(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs):
if epoch % 100 == 0: print('')
print('.', end='')
EPOCHS = 500
# Store training stats
history = model.fit(train_data, train_labels, epochs=EPOCHS,
validation_split=0.2, verbose=0,
callbacks=[PrintDot()])
import matplotlib.pyplot as plt
plt.interactive(False)
def plot_history(history):
plt.figure()
plt.xlabel('Epoch')
plt.ylabel('Mean Abs Error [1000$]')
plt.plot(history.epoch, np.array(history.history['mean_absolute_error']),
label='Train Loss')
plt.plot(history.epoch, np.array(history.history['val_mean_absolute_error']),
label='Val loss')
plt.legend()
plt.ylim([0, 5])
plot_history(history)
[loss, mae] = model.evaluate(test_data, test_labels, verbose=0)
print("Testing set Mean Abs Error: ${:7.2f}".format(mae * 1000))
test_predictions = model.predict(test_data).flatten()
plt.scatter(test_labels, test_predictions)
plt.xlabel('True Values [1000$]')
plt.ylabel('Predictions [1000$]')
plt.axis('equal')
plt.xlim(plt.xlim())
plt.ylim(plt.ylim())
_ = plt.plot([-100, 100], [-100, 100])
error = test_predictions - test_labels
plt.hist(error, bins=50)
plt.xlabel("Prediction Error [1000$]")
_ = plt.ylabel("Count")
plt.show()
# https://www.youtube.com/watch?v=voLSnXi4hAI
解决方案
推荐阅读
- database - 将变量从一个 sql 脚本传递到另一个作为参数
- xslt - 使用 XSLT 过滤掉特定的字符串
- ruby-on-rails - 在 ruby on rails 中使用 gmail api 检查用户电子邮件中的某些关键字是否可用
- ios - 收到内存压力事件和应用程序崩溃可能是因为背景图像大小
- javascript - 如何在 React 中使用 Rxjs 返回 Promise?
- c# - Regex.Matches 为每个找到的匹配找到最少的字符
- javascript - 如何以阶梯形式管理元素的可见性
- kotlin - 如何使用 Kotlin 样式向 CopyInWriteCollection 添加元素?
- c# - 读取 JSON 文件并在 SQL 中创建记录时出现问题
- c# - 检查网络流量 (xamarin)