张量板麻烦两个1D图形而不是一个2D图形

时间:2019-06-21 12:51:25

标签: python tensorflow machine-learning tensorboard

我目前正在从事一个机器学习项目。 我将Python3与tensorflow一起使用来训练CNN神经网络,我想通过使用tensorboard来衡量其性能。

我想测量每个时期的损失值。但是,我没有2个图形,一个是带有历元的值,另一个是损耗值。

我在这里截屏了:

enter image description here

我的代码有培训部分:

with tf.Session(config = config) as sess:

    sess.run(tf.global_variables_initializer())

    writer = tf.summary.FileWriter(graphDirectory, sess.graph)

    # Generate shepp logan for validation
    x_arr_validate, y_arr_validate, x_true_arr_validate,  y_true_arr_validate = generateData(datasize,nbiter,reco_space,operator,pseudoinverse,validation=True                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        )
    for step in tqdm(range(epoch)):

        #Generate trading data
        x_arr, y_arr, x_true_arr, y_true_arr = generateData(datasize,nbiter,reco_space,operator,pseudoinverse)

        #Training
        feed_dict = {x0: x_arr,
                x_true: x_true_arr,
                y: y_arr}

        _,loss_training = sess.run([optimizer, loss], feed_dict)


        #Validation
        feed_dictValidate = {x0 : x_arr_validate,
                x_true : x_true_arr_validate,
                y : y_arr_validate}

        x_values_result, loss_result = sess.run([x_values, loss], feed_dictValidate)

        lossSummary = tf.Summary(value=[tf.Summary.Value(tag="loss", simple_value=loss_result)])
        epochSummary = tf.Summary(value=[tf.Summary.Value(tag="epoch", simple_value=step)])
        writer.add_summary(lossSummary)
        writer.add_summary(epochSummary)


    saver.save(sess, sessFileName,write_meta_graph=True)
    writer.close()

我尝试更改:

writer.add_summary(lossSummary)
writer.add_summary(epochSummary)

通过:

writer.add_summary(lossSummary,epochSummary)

但这不起作用。

我也尝试创建一个数组:

step_per_epoch = []

...

x_values_result, loss_result = sess.run([x_values, loss], feed_dictValidate)
 step_per_epoch.append(loss_result)

lossSummary = tf.Summary(value=[tf.Summary.Value(tag="loss",   simple_value=step_per_epoch)])

writer.add_summary(lossSummary)

但是出现以下错误:

lossSummary = tf.Summary(value=[tf.Summary.Value(tag="loss", simple_value=loss_per_epoch)])
TypeError: [] has type list, but expected one of: int, long, float

我不知道。有任何提示或提示吗?谢谢

1 个答案:

答案 0 :(得分:1)

如果要在水平轴上查看历元,则必须传递global_step参数以及摘要(请参见tf.summary.FileWriter.add_summary的文档)。在您的情况下,应该是:

writer.add_summary(lossSummary, step)
writer.add_summary(epochSummary, step)

或者,如果您在此面板中更改“水平轴”选择,则:

Horizontal axis panel

从“ Step”到“ Relative”或“ Wall”,您将在X轴上具有相对或绝对时间戳记,可让您查看进度。