Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 scikit学习类型为';非类型';没有len()_Python 2.7_Scikit Learn_Azure Machine Learning Studio - Fatal编程技术网

Python 2.7 scikit学习类型为';非类型';没有len()

Python 2.7 scikit学习类型为';非类型';没有len(),python-2.7,scikit-learn,azure-machine-learning-studio,Python 2.7,Scikit Learn,Azure Machine Learning Studio,我只是尝试在Azure ML中使用python中的SGD来训练一个简单的逻辑回归模型,但是当我运行代码时,它总是会出错。更令人困惑的是,错误只出现在第8个历元中,而没有出现在任何一个历元中。如果有人能告诉我为什么会出现这样的错误以及如何避免,我将不胜感激。我已经包括了下面的代码和错误 from sklearn.linear_model import SGDClassifier #Import data cadd_dir = '.\\Script Bundle\\theano\\d

我只是尝试在Azure ML中使用python中的SGD来训练一个简单的逻辑回归模型,但是当我运行代码时,它总是会出错。更令人困惑的是,错误只出现在第8个历元中,而没有出现在任何一个历元中。如果有人能告诉我为什么会出现这样的错误以及如何避免,我将不胜感激。我已经包括了下面的代码和错误

from sklearn.linear_model import SGDClassifier
    #Import data
    cadd_dir = '.\\Script Bundle\\theano\\data\\'
    ClinVar_ESP_dir = '.\\Script Bundle\\theano\\data\\'
    #load data    
    X_tr = numpy.load(os.path.join(cadd_dir, 'training.X.npz'))
    X_tr = scipy.sparse.csr_matrix((X_tr['data'], X_tr['indices'], X_tr['indptr']), shape=X_tr['shape'])
    y_tr = numpy.load(os.path.join(cadd_dir, 'training.y.npy'))
    #Train model
    print('Train SGD Logistic Regression')
    alpha = 1e-2
    clf = SGDClassifier(loss="log", penalty='l2', alpha=alpha, random_state=None, shuffle=False, n_iter=10, verbose=1, n_jobs=1)
    clf.fit(X_tr, y_tr)




#Error
"[Information]         -- Epoch 7
[Information]         Norm: 0.40, NNZs: 641, Bias: 0.000623, T: 186214000, Avg. loss: 0.670200
[Information]         Total training time: 43.97 seconds.

[Information]         -- Epoch 8
[Error]         Caught exception while executing function: Traceback (most recent call last):
[Error]           File "C:\server\invokepy.py", line 211, in batch
[Error]             xdrutils.XDRUtils.DataFrameToRFile(outlist[i], outfiles[i], True)
[Error]           File "C:\server\XDRReader\xdrutils.py", line 51, in DataFrameToRFile
[Error]             attributes = XDRBridge.DataFrameToRObject(dataframe)
[Error]           File "C:\server\XDRReader\xdrbridge.py", line 40, in DataFrameToRObject
[Error]             if (len(dataframe) == 1 and type(dataframe[0]) is pd.DataFrame):
[Error]         TypeError: object of type 'NoneType' has no len()
[Information]         Norm: 0.40, NNZs: 641, Bias: 0.000623, T: 212816000, Avg. loss: 0.669797
[Information]         Total training time: 50.21 seconds.

[Information]         -- Epoch 9
[Information]         Norm: 0.40, NNZs: 641, Bias: 0.000622, T: 239418000, Avg. loss: 0.669482
[Information]         Total training time: 56.46 seconds."

您的程序正在创建常规输出(“[信息]”)和错误消息(“[错误]”),但Azure ML Studio的构建只是为了显示一个输出日志,因此这两种类型的消息都已写入同一文件。更令人困惑的是,每种类型的消息在写入日志时都经历了不同的延迟。这就解释了为什么错误消息中会包含有关训练第8纪元的信息消息,尽管这两个消息是不相关的

这些错误是由函数引发的,这些函数应该在模块运行结束时导出Python脚本的结果。要在Azure ML中正常运行,您的代码需要包装在名为
azureml\u main()
(作为模板包含在新的执行Python脚本模块中)的函数中
azureml_main()
需要返回一个
pandas
DataFrame
。我不确定您想要返回什么,因为您的代码只适合一个模型,但以下内容可能会有所帮助:

from sklearn.linear_model import SGDClassifier
import numpy
import scipy
import pandas as pd

cadd_dir = '.\\Script Bundle\\theano\\data\\'
ClinVar_ESP_dir = '.\\Script Bundle\\theano\\data\\'

def azureml_main(input_df1 = None, input_df2 = None):
    #load data    
    X_tr = numpy.load(os.path.join(cadd_dir, 'training.X.npz'))
    X_tr = scipy.sparse.csr_matrix((X_tr['data'], X_tr['indices'], X_tr['indptr']), shape=X_tr['shape'])
    y_tr = numpy.load(os.path.join(cadd_dir, 'training.y.npy'))
    #Train model
    print('Train SGD Logistic Regression')
    alpha = 1e-2
    clf = SGDClassifier(loss="log", penalty='l2', alpha=alpha, random_state=None, shuffle=False, n_iter=10, verbose=1, n_jobs=1)
    clf.fit(X_tr, y_tr)
    return(pd.DataFrame([]))

另外,您是否正在与MSR的Jenn/Nicolo合作进行变异效应预测?如果不是,您应该ping它们

您的程序正在创建常规输出(“[信息]”)和错误消息(“[错误]”),但Azure ML Studio的构建只是为了显示一个输出日志,因此这两种类型的消息都已写入同一文件。更令人困惑的是,每种类型的消息在写入日志时都经历了不同的延迟。这就解释了为什么错误消息中会包含有关训练第8纪元的信息消息,尽管这两个消息是不相关的

这些错误是由函数引发的,这些函数应该在模块运行结束时导出Python脚本的结果。要在Azure ML中正常运行,您的代码需要包装在名为
azureml\u main()
(作为模板包含在新的执行Python脚本模块中)的函数中
azureml_main()
需要返回一个
pandas
DataFrame
。我不确定您想要返回什么,因为您的代码只适合一个模型,但以下内容可能会有所帮助:

from sklearn.linear_model import SGDClassifier
import numpy
import scipy
import pandas as pd

cadd_dir = '.\\Script Bundle\\theano\\data\\'
ClinVar_ESP_dir = '.\\Script Bundle\\theano\\data\\'

def azureml_main(input_df1 = None, input_df2 = None):
    #load data    
    X_tr = numpy.load(os.path.join(cadd_dir, 'training.X.npz'))
    X_tr = scipy.sparse.csr_matrix((X_tr['data'], X_tr['indices'], X_tr['indptr']), shape=X_tr['shape'])
    y_tr = numpy.load(os.path.join(cadd_dir, 'training.y.npy'))
    #Train model
    print('Train SGD Logistic Regression')
    alpha = 1e-2
    clf = SGDClassifier(loss="log", penalty='l2', alpha=alpha, random_state=None, shuffle=False, n_iter=10, verbose=1, n_jobs=1)
    clf.fit(X_tr, y_tr)
    return(pd.DataFrame([]))
另外,您是否正在与MSR的Jenn/Nicolo合作进行变异效应预测?如果不是,你应该打电话给他们