System.InvalidOperationException : 异步操作尚未完成 [英] System.InvalidOperationException : The asynchronous operation has not completed

查看:30
本文介绍了System.InvalidOperationException : 异步操作尚未完成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

安装导致 Ml.net 异常的管道.Fit 不是可等待的,我很困惑为什么会发生这种情况.任何帮助都是可观的

Fitting the pipeline causing exception in Ml.net. The Fit is not an awaitable and I'm confused why this happens. Any help is appreciable

var model = pipeline.Fit(dataView);

堆栈跟踪

在System.Threading.Channels.AsyncOperation.ThrowIncompleteOperationException()在 System.Threading.Channels.AsyncOperation1.GetResult(Int16 token) 在 Microsoft.ML.Transforms.RowShufflingTransformer.Cursor.MoveNextCore() 在 Microsoft.ML.Data.RootCursorBase.MoveNext() 在 Microsoft.ML.Trainers.TrainingCursorBase.MoveNext() 在 Microsoft.ML.Trainers.SdcaTrainerBase3.TrainCore(IChannel ch,RoleMappedData 数据,LinearModelParameters 预测器,Int32weightSetCount) 在Microsoft.ML.Trainers.StochasticTrainerBase2.TrainModelCore(TrainContext context) at Microsoft.ML.Trainers.TrainerEstimatorBase2.TrainTransformer(IDataViewtrainSet、IDataView 验证集、IPredictor initPredictor) 在Microsoft.ML.Trainers.TrainerEstimatorBase2.Fit(IDataView input) at Microsoft.ML.Data.EstimatorChain1.Fit(IDataView input) atML.DetectFakeJobPosts.Analyzer.Train() 在D:Sourcescode-everythingCodeItHereML.DetectFakeJobPostsProgram.cs:line75 在 ML.DetectFakeJobPosts.Program.Main(String[] args) 中D:Sourcescode-everythingCodeItHereML.DetectFakeJobPostsProgram.cs:line13

at System.Threading.Channels.AsyncOperation.ThrowIncompleteOperationException() at System.Threading.Channels.AsyncOperation1.GetResult(Int16 token) at Microsoft.ML.Transforms.RowShufflingTransformer.Cursor.MoveNextCore() at Microsoft.ML.Data.RootCursorBase.MoveNext() at Microsoft.ML.Trainers.TrainingCursorBase.MoveNext() at Microsoft.ML.Trainers.SdcaTrainerBase3.TrainCore(IChannel ch, RoleMappedData data, LinearModelParameters predictor, Int32 weightSetCount) at Microsoft.ML.Trainers.StochasticTrainerBase2.TrainModelCore(TrainContext context) at Microsoft.ML.Trainers.TrainerEstimatorBase2.TrainTransformer(IDataView trainSet, IDataView validationSet, IPredictor initPredictor) at Microsoft.ML.Trainers.TrainerEstimatorBase2.Fit(IDataView input) at Microsoft.ML.Data.EstimatorChain1.Fit(IDataView input) at ML.DetectFakeJobPosts.Analyzer.Train() in D:Sourcescode-everythingCodeItHereML.DetectFakeJobPostsProgram.cs:line 75 at ML.DetectFakeJobPosts.Program.Main(String[] args) in D:Sourcescode-everythingCodeItHereML.DetectFakeJobPostsProgram.cs:line 13

管道

    var pipeline = _context.Transforms.Categorical.OneHotEncoding("ec_title", "title")
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_location", "location"))
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_department", "department"))
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_salary_range", "salary_range"))
        .Append(_context.Transforms.Text.FeaturizeText("ec_company_profile", "company_profile"))
        .Append(_context.Transforms.Text.FeaturizeText("ec_description", "description"))
        .Append(_context.Transforms.Text.FeaturizeText("ec_requirements", "requirements"))
        .Append(_context.Transforms.Text.FeaturizeText("ec_benefits", "benefits"))
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_employment_type", "employment_type"))
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_required_experience", "required_experience"))
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_required_education", "required_education"))
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_industry", "industry"))
        .Append(_context.Transforms.Categorical.OneHotEncoding("ec_function", "function"))

        //drop unnecessary columns from view
        .Append(_context.Transforms.DropColumns("title", "location", "department", "salary_range", "company_profile", "description", "requirements", "benefits", "employment_type", "required_experience", "required_education", "industry", "function", "telecommuting", "has_company_logo", "has_questions"))

        //concate features
        .Append(_context.Transforms.Concatenate("Features", "ec_title", "ec_location", "ec_department", "ec_salary_range", "ec_company_profile", "ec_description", "ec_requirements", "ec_benefits", "ec_employment_type", "ec_required_experience", "ec_required_education", "ec_industry", "ec_function"))
        //set label/prediction column
        .Append(_context.Transforms.Conversion.ConvertType("Label", "fraudulent", DataKind.Boolean))
        //select a trainer
        .Append(_context.BinaryClassification.Trainers.SdcaLogisticRegression());

点击此处获取数据集

版本

Ml.net : 1.5.1

Ml.net : 1.5.1

核心:3.1

推荐答案

此问题来自 PR I made 更新部分代码以使用 Channels一>.事实证明,在我们检查导致错误的结果之前,并不总是保证完成异步调用.

The issue for this is from a PR I made to update part of the code to use Channels. It turns out that it's not always guaranteed to finish the async call before we check the result of it which is causing the error.

目前在 daily NuGet feed 获取最新的每日构建,直到 1.5.2 版本正式发布.

There's a fix for this currently in the daily NuGet feed to get the latest daily build until the 1.5.2 version gets officially released.

这篇关于System.InvalidOperationException : 异步操作尚未完成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆