рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ TypeError: object of type 'numpy.float64' has no len()
рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд╛рдпрдерди 2.7 рдФрд░ рдкрд╛рдпрдерди 3.5 рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ:
from pomegranate import *
import numpy as np
d1 = DiscreteDistribution({'A': 0.25, 'C': 0.25, 'G': 0.25, 'T': 0.25})
d2 = DiscreteDistribution({'A': 0.10, 'C': 0.40, 'G': 0.40, 'T': 0.10})
gmm = GeneralMixtureModel( [d1, d2] )
seq = list('CGACTACTGACTACTCGCCGACGCGACTGCCGTCTATACTGCGCATACGGC')
gmm_predictions = gmm.predict( np.array(seq) )
рддреНрд░реБрдЯрд┐
TypeError Traceback (most recent call last)
<ipython-input-1-8becbf5be0a3> in <module>()
7
8 seq = list('CGACTACTGACTACTCGCCGACGCGACTGCCGTCTATACTGCGCATACGGC')
----> 9 gmm_predictions = gmm.predict( np.array(seq) )
pomegranate/bayes.pyx in pomegranate.bayes.BayesModel.predict()
TypeError: object of type 'numpy.float64' has no len()
рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рд░рд╡рд┐рд╡рд╛рд░ рдХреА рдорд╕реНрддреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git bisect
рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХрдм рд╢реБрд░реВ рд╣реБрдЖред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓реА рдФрд░ рдирд┐рдореНрди рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╡рд╣ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ ред
рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рд╣реИрдВ:
bisect.bash.txt
Makefile.txt
рдЙрд╕ рд░реЗрдЦрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдЬрд╣рд╛рдВ рд╕реЗ рддреНрд░реБрдЯрд┐ рдЖ рд░рд╣реА рд╣реИ:
In [8]: try: gmm_predictions = gmm.predict( np.array(seq) )
...: except:
...: import traceback
...: traceback.print_exc()
...:
Traceback (most recent call last):
File "<ipython-input-8-88c80acd3363>", line 1, in <module>
try: gmm_predictions = gmm.predict( np.array(seq) )
File "pomegranate/bayes.pyx", line 425, in pomegranate.bayes.BayesModel.predict
TypeError: object of type 'numpy.float64' has no len()
рдпрд╣рд╛рдБ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ: https://github.com/jmschrei/pomegranate/blob/master/pomegranate/bayes.pyx#L425
рдХреЛрдб рдХрд╣рддрд╛ рд╣реИ:
if not self.is_vl_:
X_ndarray = _check_input(X, self.keymap)
X_ptr = <double*> X_ndarray.data
========> n, d = len(X_ndarray), len(X_ndarray[0]) ## <===== here is the error
if d != self.d:
raise ValueError("sample only has {} dimensions but should have {} dimensions".format(d, self.d))
else:
X_ndarray = X
n, d = len(X_ndarray), self.d
n, d = len(X_ndarray), len(X_ndarray[0])
рдХреЛ . рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛
n = len(X_ndarray)
d = len(X_ndarray[0])
рд▓рд╛рдЗрди рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ X_ndarray
рдПрдХ рдЖрдпрд╛рдореА рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдпрд╣ рддреНрд░реБрдЯрд┐ len(X_ndarray[0])
. рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рд╣реИ:
рд╢рд╛рдпрдж рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ:
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХрд░рддреЗ рд╣реИрдВ:
keymap = [{key: i for i, key in enumerate(set(functools.reduce(lambda x, y: x+y, [d.keys() for d in gmm.distributions])))}]
print(keymap)
[{'A': 0, 'C': 1, 'T': 2, 'G': 3}]
a = utils._check_input(np.array(seq), keymap)
a.shape
Out[17]: (51,)
print(a)
[ 1. 3. 0. 1. 2. 0. 1. 2. 3. 0. 1. 2. 0. 1. 2. 1. 3. 1.
1. 3. 0. 1. 3. 1. 3. 0. 1. 2. 3. 1. 1. 3. 2. 1. 2. 0.
2. 0. 1. 2. 3. 1. 3. 1. 0. 2. 0. 1. 3. 3. 1.]
рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдорд┐рд▓ рд░рд╣реА рд╣реИред
@jmschrei рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?
рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдмреНрд░реЗрдХ рд▓реЗ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЕрдм рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВред
рдореИрдВрдиреЗ 1D рд╕рд░рдгреА рдХреЛ utils.pyx рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 2D рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЕрдм рдореЗрд░реА рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд░рд╡рд┐рд╡рд╛рд░ рдХреА рдорд╕реНрддреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
git bisect
рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХрдм рд╢реБрд░реВ рд╣реБрдЖредрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓реА рдФрд░ рдирд┐рдореНрди рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╡рд╣ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ ред
рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рд╣реИрдВ:
bisect.bash.txt
Makefile.txt