如何在给定程序中绘制TensorFlow版本v1.x中相对于历元的训练准确性,训练损失

问题描述

我是Tensorflow编程的新手。我想在以下程序中绘制训练精度,训练损失,验证准确性和验证损失。我在google colab中使用tensorflow 1.x版。代码段如下。

# hyperparameters
n_neurons = 128  
learning_rate = 0.001  
batch_size = 128
n_epochs = 5
# parameters
n_steps = 32   
n_inputs = 32  
n_outputs = 10   
# build a rnn model
X = tf.placeholder(tf.float32,[None,n_steps,n_inputs])  
y = tf.placeholder(tf.int32,[None])  
cell = tf.nn.rnn_cell.BasicRNNCell(num_units=n_neurons)  
output,state = tf.nn.dynamic_rnn(cell,X,dtype=tf.float32)  
logits = tf.layers.dense(state,n_outputs)  
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y,logits=logits)  
loss = tf.reduce_mean(cross_entropy)  
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss)  
prediction = tf.nn.in_top_k(logits,y,1)  
accuracy = tf.reduce_mean(tf.cast(prediction,tf.float32))  
# input data
x_test = x_test.reshape([-1,n_inputs]) 
# initialize the variables
init = tf.global_variables_initializer()
# train the model
with tf.Session() as sess:    sess.run(init)  
    n_batches = 100  
    for epoch in range(n_epochs):  
        for batch in range(n_batches):  
            sess.run(optimizer,feed_dict={X: x_train,y: y_train})  
            loss_train,acc_train = sess.run([loss,accuracy],feed_dict={X: 
            x_train,y: y_train})  
            print('Epoch: {},Train Loss: {:.3f},Train Acc: 
            {:.3f}'.format(epoch + 1,loss_train,acc_train))  
            loss_test,acc_test = sess.run([loss,feed_dict={X: 
            x_test,y: y_test})  
            print('Test Loss: {:.3f},Test Acc: {:.3f}'.format(loss_test,acc_test))

解决方法

如Viviann所评论的那样,在编写代码时请使用```,因为它很难理解。 但是以下代码可能会有所帮助:

*附带说明:这是使用喀拉拉石

 private void screenSave(byte[] temp,String path){
    SVG svg = SVGParser.getSVGFromString(new String(temp));
    PictureDrawable pictureDrawable = svg.createPictureDrawable();
    Bitmap bitmap = pictureDrawable2Bitmap(pictureDrawable);
    try (FileOutputStream out = new FileOutputStream(path) {
        bitmap.compress(Bitmap.CompressFormat.PNG,100,out);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private static Bitmap pictureDrawable2Bitmap(PictureDrawable pd) {
    Bitmap bitmap = Bitmap.createBitmap(pd.getIntrinsicWidth(),pd.getIntrinsicHeight(),Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    canvas.drawPicture(pd.getPicture());
    return bitmap;
}

在这里您从训练和验证中分配值(准确性和损失性)。我相信您已经完成了那部分。

以下部分用于绘制这些值

acc = history.history['acc']
val_acc = history.history['val_acc']
loss = history.history['loss']
val_loss = history.history['val_loss']

它应该给你这样的东西

Example of plot values(training,validation acc and loss

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...