a = sess.run(y) a = np.round(a[0][0], 1) # 对浮点数进行四舍五入 a = '{:.2f}'.format(a) # 将结果输出为字符串格式 File "C:\Users\DELL\Desktop\python_flask-dc\python_flask\bpnn_tf.py", line 131, in <module> a = '{:.2f}'.format(a) # 将结果输出为字符串格式 TypeError: unsupported format string passed to numpy.ndarray.__format__
时间: 2024-03-01 20:54:20 浏览: 120
这个错误提示是因为在使用格式化字符串时传入了不支持的格式化字符,而这个格式化字符是传给了一个 numpy 的数组。你可以尝试将这个数组转换为 Python 的列表或元组,然后再进行格式化输出。在 Python 中,可以使用 `tolist()` 方法将 numpy 数组转换为 Python 列表。修改代码如下:
```
a = sess.run(y)
a = np.round(a[0][0], 1)
a = '{:.2f}'.format(float(a)) # 将结果输出为字符串格式
```
这样就可以避免这个错误了。
相关问题
with tf.Session() as sess: sess.run(init) saver = tf.train.Saver() train_writer = tf.summary.FileWriter(log_dir+'/train',sess.graph) test_writer = tf.summary.FileWriter(log_dir+'/test') step = 1 coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(sess, coord) print('doing1') # Keep training until reach max iterations try: while step * batch_size <= training_iters: # print('doing2') batch_xs, batch_ys = sess.run([hrrp_batch, label_batch]) # print(batch_xs.shape) # print(batch_ys.shape) # 获取批数据 sess.run(optimizer, feed_dict={x: batch_xs, y: batch_ys, keep_prob: dropout}) if step % display_step == 0: summary= sess.run(merged, feed_dict={x: batch_xs, y: batch_ys, keep_prob: 1.}) test_writer.add_summary(summary, step) # 计算精度 acc = sess.run(accuracy, feed_dict={x: batch_xs, y: batch_ys, keep_prob: 1.}) # 计算损失值 loss = sess.run(cost, feed_dict={x: batch_xs, y: batch_ys, keep_prob: 1.}) 所选择的特征是
在这段代码中,没有涉及到特征的选择。这段代码是用于在 TensorFlow 中训练一个神经网络模型的。在这段代码中,使用了一个数据队列来读取数据,其中 hrrp_batch 和 label_batch 是从数据队列中读取的批量数据。然后,使用 sess.run() 函数来运行优化器,从而通过反向传播算法来更新模型参数。在每个训练步骤中,使用 sess.run() 函数来计算模型的精度和损失值,并使用 tf.summary.FileWriter() 函数来将结果写入 TensorBoard 日志文件中。总的来说,这段代码是用于训练神经网络模型的,而特征的选择通常是在数据预处理和特征工程中进行的。
def generate(): states_ = sess.run(initial_state) gen = '' c = '[' while c != ']': gen += c x = np.zeros((batch_size, 1)) x[:, 0] = char2id[c] probs_, states_ = sess.run([probs, last_states], feed_dict={X: x, initial_state: states_}) probs_ = np.squeeze(probs_) pos = int(np.searchsorted(np.cumsum(probs_), np.random.rand() * np.sum(probs_))) c = id2char[pos] return gen[1:] def generate_with_head(head): states_ = sess.run(initial_state) gen = '' c = '[' i = 0 while c != ']': gen += c x = np.zeros((batch_size, 1)) x[:, 0] = char2id[c] probs_, states_ = sess.run([probs, last_states], feed_dict={X: x, initial_state: states_}) probs_ = np.squeeze(probs_) pos = int(np.searchsorted(np.cumsum(probs_), np.random.rand() * np.sum(probs_))) if (c == '[' or c == '。' or c == ',') and i < len(head): c = head[i] i += 1 else: c = id2char[pos] return gen[1:]
这段代码包含了两个函数,第一个函数generate用于生成一段随机的文本,其工作流程是先生成一个起始字符'[',然后不断地根据当前字符生成下一个字符,直到生成']'字符为止。在生成下一个字符时,会根据当前字符的概率分布随机选取下一个字符。第二个函数generate_with_head与generate类似,但是在生成文本时会根据head参数指定的文本内容进行约束。具体来说,函数会先生成head中指定的文本内容,然后再生成随机的文本,直到生成']'为止。在生成随机文本时,如果当前字符是句号、逗号或者是起始字符,且还没有生成完head中的内容,函数会将下一个字符设置为head中对应的字符,以便保证生成的文本与head中的文本内容一致。
阅读全文