问题描述
在图像分类程序中使用预先训练的TensorFlow模态,除了我尝试通过训练后的数据生成新的模型文件以用于将来的预测时,它工作正常。.(original.pb +训练后的数据= myNewModel.pb)
public static ITransformer GenerateModel(MLContext mlContext)
{
TensorFlowModel tensorFlowModel = mlContext.Model.LoadTensorFlowModel("original.pb");
IEstimator<ITransformer> pipeline = mlContext.Transforms.LoadImages(outputColumnName: "input",imageFolder: _imagesFolder,inputColumnName: nameof(ImageData.ImagePath))
.Append(mlContext.Transforms.ResizeImages(outputColumnName: "input",imageWidth: InceptionSettings.ImageWidth,imageHeight: InceptionSettings.ImageHeight,inputColumnName: "input"))
.Append(mlContext.Transforms.ExtractPixels(outputColumnName: "input",interleavePixelColors: InceptionSettings.ChannelsLast,offsetimage: InceptionSettings.Mean))
.Append(tensorFlowModel.
scoreTensorFlowModel(outputColumnNames: new[] { "softmax2_pre_activation" },inputColumnNames: new[] { "input" },addBatchDimensionInput: true))
.Append(mlContext.Transforms.Conversion.MapValuetoKey(outputColumnName: "LabelKey",inputColumnName: "Label"))
.Append(mlContext.MulticlassClassification.Trainers.LbfgsMaximumEntropy(labelColumnName: "LabelKey",featureColumnName: "softmax2_pre_activation"))
.Append(mlContext.Transforms.Conversion.MapKeyTovalue("PredictedLabelValue","PredictedLabel"))
.AppendCacheCheckpoint(mlContext);
IDataView trainingData = mlContext.Data.LoadFromTextFile<ImageData>(path: _trainTagsTsv,hasHeader: false);
ITransformer model = pipeline.Fit(trainingData);
IDataView testData = mlContext.Data.LoadFromTextFile<ImageData>(path: _testTagsTsv,hasHeader: false);
IDataView predictions = model.Transform(testData);
IEnumerable<ImagePrediction> imagePredictionData = mlContext.Data.CreateEnumerable<ImagePrediction>(predictions,true);
displayResults(imagePredictionData);
mlContext.Model.Save(model,tensorFlowModel.GetModelSchema(),filePath: "myNewModel.pb");
//line below throws `Invalid GraphDef` exception
TensorFlowModel newTensorFlowM= mlContext.Model.LoadTensorFlowModel("myNewModel.pb");
原因很明显,.pb
文件的格式无效,但是我只是使用与原始文件相同的架构创建的,在这里有什么处理?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)