Jump to content

Getting started w/ python recommendations pls!

Nicnac

Hey,

I wanna get started with python but have very little programming experience (just a little C++ and java stuff)...

I have a raspi and would like to use it for my first steps in python. Eventually I want to get to programming neural networks and such but for now I need the very basics.

I would like to ask for recommendations on sites/ tutorials/ books to get started.

Thanks in advance!

Folding stats

Vigilo Confido

 

Link to comment
Share on other sites

Link to post
Share on other sites

Why Python?

PC: Case: Cooler Master CM690 II - PSU: Cooler Master G650M - RAM: Transcend 4x 8Gb DDR3 1333Mhz - MoBo: Gigabyte Z87x-D3H - CPU: i5 4670K @ 4.5Ghz - GPU: MSI GTX1060 ARMOR OC - Hard disks: 4x 500Gb Seagate enterprise in RAID 0 - SSD: Crucial M4 128Gb

Phone: Samsung Galaxy S6

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, LUUD18 said:

Why Python?

Because people say its simple and supports gpu acceleration

Folding stats

Vigilo Confido

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Nicnac said:

Because people say its simple and supports gpu acceleration

It might be simple but it's really limited in my opinion. If you want to create some complex programs then you are better off with C#, C++ Or Java.

PC: Case: Cooler Master CM690 II - PSU: Cooler Master G650M - RAM: Transcend 4x 8Gb DDR3 1333Mhz - MoBo: Gigabyte Z87x-D3H - CPU: i5 4670K @ 4.5Ghz - GPU: MSI GTX1060 ARMOR OC - Hard disks: 4x 500Gb Seagate enterprise in RAID 0 - SSD: Crucial M4 128Gb

Phone: Samsung Galaxy S6

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, LUUD18 said:

It might be simple but it's really limited in my opinion. If you want to create some complex programs then you are better off with C#, C++ Or Java.

I am particularly interested in neural networks and ai programming. I thought python was a good way to start. Also I wanted to try out gpu acceleration. what would you recommend for theses specific applications?

Folding stats

Vigilo Confido

 

Link to comment
Share on other sites

Link to post
Share on other sites

49 minutes ago, Nicnac said:

Also I wanted to try out gpu acceleration

You aren't really going to get that on a pi.

 

If you're interested in any sort of scientific computing, however, check out NumPy.  If you're on a machine with nvidia graphics, there's also PyCUDA.

 

You can pair them with Matplotlib for making graphs.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Nicnac said:

I am particularly interested in neural networks and ai programming. I thought python was a good way to start. Also I wanted to try out gpu acceleration. what would you recommend for theses specific applications?

The one's I said earlier: C#, C++ Or Java. I prefer C# though because it's newer.

 

GPU Acceleration can be done by any programming language. For instance C#:

https://devblogs.nvidia.com/parallelforall/accelerate-net-applications-alea-gpu/

PC: Case: Cooler Master CM690 II - PSU: Cooler Master G650M - RAM: Transcend 4x 8Gb DDR3 1333Mhz - MoBo: Gigabyte Z87x-D3H - CPU: i5 4670K @ 4.5Ghz - GPU: MSI GTX1060 ARMOR OC - Hard disks: 4x 500Gb Seagate enterprise in RAID 0 - SSD: Crucial M4 128Gb

Phone: Samsung Galaxy S6

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, LUUD18 said:

It might be simple but it's really limited in my opinion. If you want to create some complex programs then you are better off with C#, C++ Or Java.

I don't agree. It's as powerful as you need it to be. 

Link to comment
Share on other sites

Link to post
Share on other sites

How do you write a kernel in Python then?

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Yamoto42 said:

You aren't really going to get that on a pi.

 

If you're interested in any sort of scientific computing, however, check out NumPy.  If you're on a machine with nvidia graphics, there's also PyCUDA.

 

You can pair them with Matplotlib for making graphs.

I just mentioned the pi for getting started. I mean the very basics. Once I got those down I will move to a dedicated machine with nvidia gpu. Thanks for the links :)

Folding stats

Vigilo Confido

 

Link to comment
Share on other sites

Link to post
Share on other sites

Since you're interested in GPU-accelerated math and neural nets, as mentioned, you won't be able to get anything serious done on a Pi due to its very low specs (at least in terms of building large or complex models), but you can get started with the basics.  That said: for straight GPU-accelerated math, look into Tensorflow and Theano.  They're both great libraries for GPU math, each with pros and cons that you'll want to read up on a bit.  In short, though: Theano is older and more mature, but Tensorflow is developed by Google and is rapidly taking over other GPU-accelerated math libraries/frameworks.  Tensorflow is also incompatible with Python 3.6 (unless you install it from source and manually compile it), which is frustrating.  There's also PyTorch, which is still in the early release stages I believe.  Despite the name, I don't think it has any relation to Lua's venerable Torch framework for deep learning--it seems to be developed from the ground up for Python.  As a word of warning, I don't think any of these libraries have very good support for OpenCL--they're all heavily CUDA_oriented, so you'll need an Nvidia GPU to get any real use out of the GPU acceleration.  (But, I believe they can all run in CPU mode, though that'll be horrendously slow and basically make non-trivial recurrent neural nets impossible to use).

 

For a neural-net specific library, look into Keras.  It's basically a nice frontend for Theano/Tensorflow that obviates the need for you to actually write the various layers of your network by hand.

 

You'll also want to look into the Scipy stack of libraries: numpy, scipy, matplotlib, and pandas, in particular.  They're absolutely indispensible for doiing any data work in Python.  Just make sure you're either installing them in a *nix environment or you grab the numpy and scipy .whl files from Chris Gohlke's site--they require Fortran and C compilers, plus a bunch of linear algebra and other math libraries that are a fucking nightmare to install on Windows (and which are overwhelmingly written specifically for *nix environemnts).

Link to comment
Share on other sites

Link to post
Share on other sites

On ‎14‎/‎06‎/‎2017 at 2:28 PM, LUUD18 said:

It might be simple but it's really limited in my opinion. If you want to create some complex programs then you are better off with C#, C++ Or Java.

what gives you the impression it's limited? 

On ‎14‎/‎06‎/‎2017 at 4:11 PM, Dat Guy said:

How do you write a kernel in Python then?

you wouldn't use any high level programming language to write a kernel, that doesn't mean its not powerful. 

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×