I'm trying to build a neural network between protein sequence and its drug fingerprint. My input size is 20000. The output size is 881. The sample size is 610.
Can I process this huge neural network? But how? And in which tool?
I'm trying to build a neural network between protein sequence and its drug fingerprint. My input size is 20000. The output size is 881. The sample size is 610.
Can I process this huge neural network? But how? And in which tool?
Yes, it should be no problem.
When you decide to use a CNN, you have to make sure that this makes sense. Another answer mentioned using 3x3
convolutions -- which I would recommend against. For that to work, you would need to turn your vector into a rectangular array, and you would be implying a structure that isn't there.
Use one-dimensional convolutions instead.
It sure is possible, imagine a CNN can handle way bigger number of inputs. An image with size of 512x512
has already 262144 input nodes
when re-arranged to a one-row vector. The trick sicne 2012/2014 is to use Convolutions, and deep ones, so stacking a lot of 3x3 Convolutions
for example. Its way less sensitive than a fully-connected Dense network and needs a siginificant amount of less parameters. For more check this out, chapter 9
: Ian-Goodfellow, Deep Learning
Tools for that are tensorflow and keras based on python, or tensorflow-js on java, you can also use pytorch but the community is rather small on comparison.
3x3
convolution only makes sense for data that is inherently two-dimensional. When you fold a one-dimensional vector into a two-dimensional array, you are imposing a structure that is not really there: two points that are vertical neighbors don't necessarily have any relationship to each other; only horizontal neighborhoods matter.
$\endgroup$
Commented
Aug 27, 2020 at 17:30