python - Tensorflow:多尺度训练
问题描述
我正在尝试在 Tensorflow 中训练类似于 YOLOv2 的多尺度 CNN:每隔几个时期随机调整输入批次的大小。但是我对Tensorflow不是很熟悉,下面是我获取批量图像和标签的方法:
data_provider = slim.dataset_data_provider.DatasetDataProvider(dataset)
image, label = data_provider.get(['image', 'label'])
inputs, labels = tf.train.shuffle_batch([image, label], \
batch_size=128, \
num_threads=4, \
capacity= 1000, \
min_after_dequeue=616)
然后我希望我可以调整输入批次的大小并输入网络
rand_size=int(np.random.uniform(0.15,1)*720)
resize_output = tf.image.resize_bilinear(preprocessed_inputs, [rand_size,rand_size],align_corners=True)
不幸的是,它不起作用,它只是在开始时调整批次的大小,并将调整大小操作应用于所有输入
有人对我应该做什么有建议吗?非常感谢
解决方案
您希望rand_size
基于 atf.random_uniform
而不是 numpy/int,否则每次运行session
.
rand_size = tf.random_uniform(
minval=int(0.15*720), maxval=720, dtype=tf.int32, shape=())
这仍然会以相同的数量调整批次的每个元素的大小。
我不熟悉slim
预处理是如何进行的,但是其中有一些东西可以让您在批处理之前执行上述操作(在这种情况下,您每次都会得到不同的随机值)。或者考虑使用最近发布的tf.data.Dataset
. 这篇文章可能会帮助你。
推荐阅读
- c# - Microsoft.CognitiveServices.Speech 未调用端点
- jquery - AJAX 调用产生额外的记录而不是更新
- sql - 如何搜索表中两列的组合列表?
- spring - 使用 jdbcTemplate 返回 1 值的正确方法
- javascript - 如何使用导航栏创建单页应用程序?
- html - 如何从中心展开网格内的卡片列表?
- json - 如何通过循环JSON在golang中显示丢失的键?
- css - 为什么尝试添加背景图像时出现解析错误?
- mongodb - 如何修复“com.mongodb.MongoSocketOpenException:异常打开套接字”错误?
- excel - 将数值表达式从 Y 轴转换为 X 轴