2016-07-25 50 views
0

我在Azure中创建了一个玩具示例。 我有以下数据集:获取AzureML实验产生的图像

amounts  city code user_id 
1 2.95 Colleferro 100  999 
2 2.95 Subiaco 100  111 
3 14.95 Avellino 101  333 
4 14.95 Colleferro 101  999 
5 14.95 Benevento 101  444 
6 -14.95 Subiaco 110  111 
7 -14.95 Sgurgola 110  555 
8 -14.95  Roma 110  666 
9 -14.95 Colleferro 110  999 

我创建一个AzureML实验,简单地绘制了大量的列。

enter image description here

的代码转换为R脚本模块如下:

data.set <- maml.mapInputPort(1) # class: data.frame 
#------------------- 
plot(data.set$amounts); 
title("This title is a very long title. That is not a problem for R, but it becomes a problem when Azure manages it in the visualization.") 
#------------------- 
maml.mapOutputPort("data.set"); 

现在,如果你点击将R脚本的右输出端口上,然后在“可视化”

enter image description here

您将看到显示输出的Azure页面。现在

enter image description here

,会发生以下情况:

  1. 情节stucked成estabilished空间(例如:标题被切断!!!)
  2. 产生的图像是低分辨率一。
  3. Azure生成的JSON“脏”(使得在C#中解码困难)。

看来,这不是获得AzureML实验产生的图像的最佳方式。

可能的解决办法:我想

在我的实验中产生的图片发送给像一滴 存储空间。

这将是一个很好的解决方案,当我有一个网络应用程序,我必须选择由Azure生成的图像并将其放在我的Web应用程序页面上。 你知道是否有办法将图像发送到某个地方?

回答

1

要使用R将图像保存到Azure Blob存储中,您需要执行两个步骤,其中包括从R设备输出Execute R Script获取图像并将图像上传到Blob存储。

有两种方法可以实现上述步骤。

  1. 可以发布实验作为一个Web服务,然后从Web服务请求的响应得到与base64编码的图像,并使用Azure的Blob存储REST API有R上传的图片。请参阅文章How to retrieve R data visualization from Azure Machine Learning

  2. 您可以直接在C#中添加一个模块,以获得&上传来自Execute R Script输出的图像。请参阅文章Accessing a Visual Generated from R Code in AzureML

+0

有一点警告:链接的文章指的是旧版本天青。上周他们已经介绍了很多新闻! –

+0

@ AndreaIanni5,感谢您的分享。 –

0

您可以按以下方式调整图像大小:

graphics.off() 
png("myplot.png",width=300,height=300) ## Create new plot with desired size 
plot(data.set); 
file.remove(Sys.glob("*rViz*png")) ## Get rid of default rViz file 
+0

我知道如何调整R中的图像大小。问题是Azure返回图像的方式。 –