- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 pytorch 和 mtcnn 进行人脸识别项目,在训练了我的训练数据集之后,现在我想对测试数据集进行预测
这是我训练有素的代码
optimizer = optim.Adam(resnet.parameters(), lr=0.001)
scheduler = MultiStepLR(optimizer, [5, 10])
trans = transforms.Compose([
np.float32,
transforms.ToTensor(),
fixed_image_standardization
])
dataset = datasets.ImageFolder(data_dir, transform=trans)
img_inds = np.arange(len(dataset))
np.random.shuffle(img_inds)
train_inds = img_inds[:int(0.8 * len(img_inds))]
val_inds = img_inds[int(0.8 * len(img_inds)):]
train_loader = DataLoader(
dataset,
num_workers=workers,
batch_size=batch_size,
sampler=SubsetRandomSampler(train_inds)
)
val_loader = DataLoader(
dataset,
shuffle=True,
num_workers=workers,
batch_size=batch_size,
sampler=SubsetRandomSampler(val_inds)
)
sampler=SubsetRandomSampler(val_inds)
并把
val_inds
相反,它会出现这个错误
val_inds ^ SyntaxError: positional argument follows keyword argument
shuffle=True
我关注了这个 repo
facenet-pytorch
最佳答案
TLDR;删除 shuffle=True
在这种情况下为 SubsetRandomSampler
已经洗牌数据了。
什么torch.utils.data.SubsetRandomSampler
确实(请 consult documentation when in doubt )它会获取一个索引列表并返回它们的排列。
在您的情况下,您有 indices
对应 training
(这些是 训练数据集中元素的索引 )和 validation
.
让我们假设那些看起来像这样:
train_indices = [0, 2, 3, 4, 5, 6, 9, 10, 12, 13, 15]
val_indices = [1, 7, 8, 11, 14]
SubsetRandomSampler
将从这些列表中返回一个数字
随机和
全部返回后将再次随机化 (
__iter__
将再次被调用)。
SubsetRandomSampler
可能会为
val_indices
返回类似的内容(类似于
train_indices
):
val_indices = [1, 8, 11, 7, 14] # Epoch 1
val_indices = [11, 7, 8, 14, 1] # Epoch 2
val_indices = [7, 1, 14, 8, 11] # Epoch 3
dataset
的索引 .请注意
validation
以这种方式洗牌,
train
也是如此不使用
shuffle=True
.这些索引不重叠,因此数据被正确拆分。
shuffle
使用 torch.utils.data.RandomSampler
如果 shuffle=True
在引擎盖下已指定,请参阅 source code .这又相当于使用 torch.utils.data.SubsetRandomSampler
与 所有指数 ( np.arange(len(datatest))
) 指定。 np.random.shuffle(img_inds)
因为无论如何索引将在每次传递期间被洗牌numpy
如果 torch
提供相同的功能 .有torch.arange
,几乎不需要混合这两个库。 module.eval()
with torch.no_grad():
output = module(dataset[5380])
module.eval()
total_batches = 0
batch_accuracy = 0
for images, labels in val_loader:
total_batches += 1
with torch.no_grad():
output = module(images)
# In case it outputs logits without activation
# If it outputs activation you may have to use argmax or > 0.5 for binary case
# Item gets float from torch.tensor
batch_accuracy += torch.mean(labels == (output > 0.0)).item()
print("Overall accuracy: {}".format(batch_accuracy / total_batches))
关于python - 值错误 : sampler option is mutually exclusive with shuffle pytorch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61033726/
我正在尝试复制以下 while 循环,但它们交错我的“卡片”的方式有所不同。 这是我当前有效的 while 循环,我的目标是重新创建此循环,但颠倒两个 card_force 数组的顺序: while
我有以下 Spark 作业,试图将所有内容保留在内存中: val myOutRDD = myInRDD.flatMap { fp => val tuple2List: ListBuffer[(St
我最近开始学习 tensorflow。 我不确定是否有区别 x = np.array([[1],[2],[3],[4],[5]]) dataset = tf.data.Dataset.from_ten
我想重置 pyspark 代码中的 spark.sql.shuffle.partitions 配置,因为我需要加入两个大表。但是以下代码在最新的spark版本中不起作用,错误说“xxx中没有方法“se
我只是想验证我对这些参数及其关系的理解,如果我错了请通知我。 mapreduce.reduce.shuffle.input.buffer.percent 告诉分配给 reducer 的整个洗牌阶段的内
假设我的数据库中有 10 个项目正在尝试洗牌,我如何更改当前的代码,以便每次从数据库中提取一个名称时,一次显示一个名称,而不是全部显示一次? $con = mysqli_connect("XXX",
1.概述 转载:Flink Remote Shuffle 开源:面向流批一体与云原生的 Shuffle 服务 2.开源 作为支持 Flink 流批一体与云原生的重要组成部分,Flink Remote
这个 fiddle 演示了我的问题:https://jsfiddle.net/petebere/fhg84je2/ 我想确保每次用户单击按钮时都会显示数组中的随机元素。问题是,有时进行新的混洗时,新混
对于那些了解情况的人来说,这应该是一个足够简单的问题 - 为什么我会在控制台中收到此错误?我尝试按照 Shuffle homepage 上“用法”下显示的代码进行操作但我认为该页面忽略了包含开始使用该
在下面的 Spark admin 在端口 8080 上运行的屏幕截图中: 此代码的“随机读取”和“随机写入”参数始终为空: import org.apache.spark.SparkContext;
docs说“所有排列的发生概率大致相等。”但我不知道这是否包括返回相同订单的可能性(无论多么小)。我有一个方法(见下文),在两次测试运行期间,列表以原始顺序返回,也许……其他因素可能有问题,比如可能已
我有一份处理大量数据的工作。此作业经常运行而没有任何错误,但偶尔会引发此错误。我正在使用 Kyro Serializer。 我正在使用 yarn 集群运行 Spark 1.2.0。 完整的堆栈跟踪在这
我正在 EC2 集群上部署 Spark 数据处理作业,该作业对于集群来说很小(16 个核心,总共 120G RAM),最大的 RDD 只有 76k+ 行。但是中间严重倾斜(因此需要重新分区)并且每
打乱数据的 spark sql 聚合操作,即 spark.sql.shuffle.partitions 200(默认情况下)。当 shuffle partition 大于 200 时,性能会发生什么变
打乱数据的 spark sql 聚合操作,即 spark.sql.shuffle.partitions 200(默认情况下)。当 shuffle partition 大于 200 时,性能会发生什么变
当在 Python 3 中使用 random 模块 random.shuffle(list(range(n))) 时,但是 random.shuffle(range( n)) 没有。 为什么会这样?
当我尝试在 pycaret 中训练某些东西时,我收到此错误消息 ValueError: Setting a random_state has no effect since shuffle is Fa
我正在以推测模式运行 Spark 作业。我有大约 500 个任务和大约 500 个 1 GB gz 压缩文件。我不断地进入每项作业,对于 1-2 个任务,附加错误,然后它会重新运行数十次(阻止作业完成
作为Django中关键字云函数的一部分,我正在尝试输出字符串列表。是否有模板过滤器,可让您随机播放列表中的项目?我认为这很简单,但是我在官方文档中找不到任何适用的过滤器。 最佳答案 制作自己的东西很简
同时思考this问题并与参与者交谈后,出现了这样的想法:对一组有限的明显有偏见的随机数进行洗牌,使它们变得随机,因为你不知道它们被选择的顺序。这是真的吗?如果是的话,有人可以指出一些资源吗? 编辑:我
我是一名优秀的程序员,十分优秀!