如何在深度神经网络中进行交叉验证?我知道执行交叉验证将在所有折叠上训练它,除了一个折叠并在排除的折叠上测试它。然后对 k 次折叠执行此操作,并平均每次折叠的准确率。您如何为每次迭代执行此操作。您是否在每次折叠时更新参数?或者您对每次迭代执行 k 折交叉验证?或者对所有折叠的每次训练都被视为一次迭代?
我从某个地方读到,如果你选择的批量大小是2,那么训练会更快.这个规则是什么?这适用于其他应用吗?你能提供参考文件吗?
我通常只是train.py用来训练使用 Tensorflow Object Detection API。但是,我从https://www.kaggle.com/c/rsna-pneumonia-detection-challenge/discussion/68581中读到,您也可以使用它model_main.py来训练模型并在 Tensorboard 上查看实时绘图和图像。
model_main.py在 Tensorboard 上使用的?train.py和 和有model_main.py什么区别?In Tensorflow, after training the model, I saved it use:
with tf.Session() as session:
/**
------- Model training code goes here ------
**/
tf.train.write_graph(session.graph_def, '.', '../har.pbtxt')
saver.save(session,save_path = "../har.ckpt")
Run Code Online (Sandbox Code Playgroud)
And to freeze and save the optimized model:
from tensorflow.python.tools import freeze_graph
from tensorflow.python.tools import optimize_for_inference_lib
freeze_graph.freeze_graph(input_graph = "../har.pbtxt", input_saver = "",
input_binary = False, input_checkpoint = "../har.ckpt", output_node_names = "y_",
restore_op_name = "save/restore_all", filename_tensor_name = "save/Const:0",
output_graph = "frozen_har.pb", clear_devices = True, initializer_nodes = "")
input_graph_def = tf.GraphDef()
with tf.gfile.Open(output_frozen_graph_name, …Run Code Online (Sandbox Code Playgroud) 我可以在分类上使用强化学习吗?比如人类活动识别?如何?
我需要运行名为的脚本train.py,但还需要通过在 bash 中发出以下命令来设置 flas:
train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config\nRun Code Online (Sandbox Code Playgroud)\n\n然而,它捕获了这个错误:
\n\n\n\n\n文件\n“/Users/cvsanbuenaventura/miniconda3/lib/python3.6/site-packages/google/protobuf/text_format.py”,\n第1288行,在_ConsumeSingleByteString\n引发self.ParseError(\'字符串缺少结束引号: %r\' % (text,)) google.protobuf.text_format.ParseError: 123:17 : 字符串缺少结尾\n 引用:\n \'"/Users/cvsanbuenaventura/Documents/tensorflow/models/research/object_detection/ train.record\xe2\x80\x9c\'
\n
所以我想在Python Shell或Jupyter Notebook中逐行调试。不过我还需要设置train_dir标志。我该如何实现这个目标?
我想优化经过冻结训练的Tensorflow模型。但是,我发现该optimize_for_inference库不再可用。
import tensorflow as tf
from tensorflow.python.tools import freeze_graph
from tensorflow.python.tools import optimize_for_inference_lib
input_graph_def = tf.GraphDef()
with tf.gfile.Open("./inference_graph/frozen_model.pb", "rb") as f:
data = f.read()
input_graph_def.ParseFromString(data)
output_graph_def = optimize_for_inference_lib.optimize_for_inference(
input_graph_def,
["image_tensor"], ## input
["'detection_boxes, detection_scores, detection_classes, num_detections"], ## outputs
tf.float32.as_datatype_enum)
f = tf.gfile.FastGFile("./optimized_model.pb", "wb")
f.write(output_graph_def.SerializeToString())
Run Code Online (Sandbox Code Playgroud)
我transform_graph从https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/README.md#strip_unused_nodes找到了优化我的冻结模型。我能够成功地为我的对象检测模型生成一个可以工作的优化模型。生成模型的优化版本的目的是提高模型的推理速度。我在bash(/ tensorflow根目录)中输入了以下代码:
bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph=/Users/cvsanbuenaventura/Documents/tensorflow_fastlog/models/research/object_detection/inference_graph/frozen_inference_graph.pb \
--out_graph=/Users/cvsanbuenaventura/Documents/tensorflow_fastlog/models/research/object_detection/inference_graph/optimized_inference_graph-transform_graph-manyoutputs-planA2-v2.pb \
--inputs='image_tensor' \
--outputs='detection_boxes, detection_scores, detection_classes, num_detections' \
--transforms='fold_batch_norms
fold_old_batch_norms
fold_constants(ignore_errors=true)'
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
fold_batch_norms, fold_old_batch_norms, fold_constants(ignore_errors=true)strip_unused_nodes(type=float, shape="1,299,299,3"))。这是做什么的?我应该在这里放什么形状?optimize_for_inference库不存在了吗?是什么区别tf.nn_conv2d,并tf.nn.depthwise_conv2d在Tensorflow?
nfft参数在这个函数中意味着什么?请参阅此链接以获取文档https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.signal.spectrogram.html
假设我有这个:
TensorShape([Dimension(None),Dimension(32)])
我在这个张量_X上使用tf.split,其尺寸如上:
_X = tf.split(_X, 128, 0)
Run Code Online (Sandbox Code Playgroud)
这种新张量的形状是什么?输出是一个列表,因此很难知道这个新张量的形状.