pycharm单步调试

pycharm单步调试debug 模式点击运行标志旁的小甲虫标志级进入 debug 模式 也可以右键代码进入 debug 模式中的按键解释断点设置在代码前左键点击会生成红色的点开始 debug 点击小甲虫标志之后 代码会停在红点的前一行 并且会把每一行的数据大小 类型给显示在对应的代码后面 控制框也可看到之后可以使用单步调试也就是 F8 让他逐行运行代码运行经过数据转入代码之后可以看到 batch xs batch ys 中的数据信息 包括他的最值 类型 元素数量以及 shape 当需要跳过循环的时候可以使用 F9 跳到光标

debug模式

debug模式中的按键解释

在这里插入图片描述

断点设置

开始debug

在这里插入图片描述
也可以查看每个周期的权重W会发现是动态变化的
在这里插入图片描述




代码

import tensorflow.compat.v1 as tf tf.disable_v2_behavior() from tensorflow.examples.tutorials.mnist import input_data # 载入数据集 mnist = input_data.read_data_sets("MNIST_data", one_hot=True) # 批次大小 batch_size = 64 # 计算一个周期一共有多少个批次 n_batch = mnist.train.num_examples // batch_size # 定义两个placeholder #x表示输入图片的数据,y表示类别个数。x被拉伸成为1×784,y被拉伸成为1×10 x = tf.placeholder(tf.float32,[None,784]) y = tf.placeholder(tf.float32,[None,10]) # 创建一个简单的神经网络:784-10 #创建规格为784×10方差为0.1的权重矩阵和规格为1×10的偏执向量 W = tf.Variable(tf.truncated_normal([784,10], stddev=0.1)) b = tf.Variable(tf.zeros([10]) + 0.1) #对x*w+b使用softmax激活函数 prediction = tf.nn.softmax(tf.matmul(x,W)+b) # 二次代价函数 # loss = tf.losses.mean_squared_error(y, prediction) # 交叉熵 000 loss = tf.losses.softmax_cross_entropy(y, prediction) # 使用梯度下降法 train = tf.train.GradientDescentOptimizer(0.3).minimize(loss) # 结果存放在一个布尔型列表中 #tf.argmax(y,1)得到里面的最大值 #tf.equal()判断函数内部的值是否一样,一样为TRUE否则为FALSE correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(prediction,1)) # 将上面correct_prediction的格式转化为32位浮点型,并且求平均值,得到准确率 accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32)) with tf.Session() as sess: # 变量初始化 sess.run(tf.global_variables_initializer()) # 周期epoch:所有数据训练一次,就是一个周期 for epoch in range(21): for batch in range(n_batch): # 获取一个批次的数据和标签 batch_xs,batch_ys = mnist.train.next_batch(batch_size) sess.run(train,feed_dict={ 
   x:batch_xs,y:batch_ys}) # 每训练一个周期做一次测试输出周期数和准确率 acc = sess.run(accuracy,feed_dict={ 
   x:mnist.test.images,y:mnist.test.labels}) print("Iter " + str(epoch) + ",Testing Accuracy " + str(acc)) w_print = str(sess.run(W)) #在当前目录下创建logdir文件夹,内部存放生成文件 writer = tf.summary.FileWriter('logdir/', sess.graph) #w_print = sess.run(W) #print(str(w_print)) #b_print = sess.run(b) #print(str(b_print)) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172771.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月27日 上午9:51
下一篇 2026年3月27日 上午9:51


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号