【问题标题】:Can i use Tensorboard for my linear regression or linear classification problem?我可以将 Tensorboard 用于我的线性回归或线性分类问题吗?
【发布时间】:2020-08-28 08:25:12
【问题描述】:

我正在研究是否可以在我的项目中使用 tensorboard。在我的项目中,我使用数据(csv 文件),但我不知道是否可以使用 tensorboard 进行损失、预测或是否只能用于图像识别。我自己并没有真正管理它。有没有人知道这是否可行以及如何做到这一点?我使用张量流。

谢谢。

【问题讨论】:

    标签: python machine-learning artificial-intelligence tensorflow2.0 tensorboard


    【解决方案1】:

    是的。您也可以使用 Tensorboard 进行回归。您可以监控 'scalars,distributions,graphs,histogram` 等来监控参数如何随着时间或时间而更新。

    我使用了简单的例子,并展示了如何在 colab 中使用。

    import tensorflow as tf
    import numpy as np
    from tensorflow import keras
    import os
    import datetime
    model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
    model.compile(optimizer='sgd', loss='mean_squared_error')
    xs = np.array([-1.0,  0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
    ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float) # 2*x-1
    logdir = os.path.join("logs", datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
    tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1)
    model.fit(xs, ys, epochs=500, verbose=0,callbacks=[tensorboard_callback])
    print(model.predict([6.0])) # actual value is 11.0 and predicts 10.99
    
    %load_ext tensorboard
    %tensorboard --logdir logs
    

    完整代码为here,供参考。

    【讨论】:

    • 感谢您的回答。它运作良好!但是我下面还有一个问题
    【解决方案2】:

    感谢您的回答。它运作良好!

    但现在我遇到了另一个问题。我想使用这样的 csv 文件: 将张量流导入为 tf 将 numpy 导入为 np 从张量流导入 keras 将熊猫导入为 pd 导入sklearn 从 sklearn 导入线性模型

    import os
    from datetime import datetime
    
    data = pd.read_csv("student-mat.csv", sep=";")
    data = data[["G1", "G2", "G3", "studytime", "failures", "absences"]]
    predict = "G3"
    
    model = tf.keras.Sequential([
    keras.layers.Dense(units=5, input_shape=[5])])
    model.compile(optimizer='sgd',
              loss='mean_squared_error',
              metrics=['accuracy'])
    
    xs = np.array(data.drop([predict], 1))
    ys = np.array(data[predict])
    
    x_train, x_test, y_train, y_test =         sklearn.model_selection.train_test_split(xs, ys, test_size=0.1)
    
    log_dir= ".\\tensorflow_logs\\test\\"+datetime.now().strftime("%Y%m%d-    %H%M%S")
    tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir,     histogram_freq=1)
    
    model.fit(x_train,
          y_train,
          epochs=500,
          verbose=0,
          validation_data=(x_test, y_test),
          callbacks=[tensorboard_callback])
    

    我收到错误消息:

    ValueError: 形状为 (355, 1) 的目标数组被传递为形状 (None, 355) 的输出,同时用作损失 mean_squared_error。这种损失期望目标具有与输出相同的形状。

    你现在有解决这个问题的办法吗?我认为这与 input_shape 但 idk 有关?

    【讨论】:

    • 实际数据和预测数据之间的形状不匹配。使用上面的代码,我无法判断错误在哪里。发布完整代码。
    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 2020-01-14
    • 2018-12-14
    • 2020-07-03
    • 2018-01-08
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多