GithubHelp home page GithubHelp logo

Go API about tensorflow HOT 66 CLOSED

tensorflow avatar tensorflow commented on April 19, 2024 66
Go API

from tensorflow.

Comments (66)

jhseu avatar jhseu commented on April 19, 2024 36

Before you do more work on that branch, keep in mind that we have in-progress Go bindings that the TensorFlow team is making :)

from tensorflow.

asimshankar avatar asimshankar commented on April 19, 2024 22

Hello folks, the Go API is in a reasonably usable shape at this point. Graphs can be imported, executed, constructed (using primitives or functions generated from the TensorFlow op definitions). See the example on godoc.org that demonstrates all this.

The API is by no means complete, but at this point I'm tempted to close out this generic "Go API" issue with the expectation that as the Go API sees real usage, new issues will be filed with specific feature requests and bug reports.

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024 11

I finally have the C++ example of the Image Recognition tutorial ported to Go. Implement all the Graph construction, constants and other stuff was relatively easy since there is available the list of operations perfectly defined here:

Here you have the Go port of the tuto example:

that corresponds with:

This is how looks like running a picture of Ceres my Labrador:

avidales@bigbrain:~/go-src/src/github.com/tensorflow/tensorflow/tensorflow/examples/label_image_go$ go run main.go data/ceres_paris.jpg
Labrador retriever : 0.9383322
American Staffordshire terrier : 0.009385344
Rhodesian ridgeback : 0.007571198
Chesapeake Bay retriever : 0.0027833031
golden retriever : 0.0026763931

I'm going to clean the code and include a section for Go libs on the tutorial.

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024 4

I still have no answer, but we could start working on the libs, and if Google wants, they can use the code, if not we can release the libs as a separate project :) I think that this shouldn't be a problem since the project is licensed using an Apache 2.0 license.
My main concern is that we could be doing the same that they are doing the same in parallel, so, by the moment we can keep reading and trying to understand how the currently available libs works, and if this weekend we don't have any news, we can prepare, plan and distribute the different tasks to do the libraries.

What do you think?
I'm going to send an e-mail to the golang-nuts mail list.

from tensorflow.

jhseu avatar jhseu commented on April 19, 2024 4

Note that it's here:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/go

We're making a more reasonable import path for people to use.

from tensorflow.

mrkaspa avatar mrkaspa commented on April 19, 2024 2

I can help too because I need this library in Go

from tensorflow.

helinwang avatar helinwang commented on April 19, 2024 2

save and load tensorflow tensors using tensorflow golang api: https://gist.github.com/helinwang/7782c6b2815c334c77653fc0e52b6069

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024 1

Just a little update of what I have been researching this weekend. I couldn't find too much time for this, but I made some small progresses.

I have been researching how the Python libs works internally, and basically, the logic to generate the graph and plan how to execute it, etc is managed from Python that sends all the graph to be executed to the C++ libraries, this libs take the graph and executes all the nodes of the graph. They are working on a pure C++ version of this logic, but it is still not ready.
In order to execute the C++ code from python they use SWIG: www.swig.org and to build the system Bazel: http://bazel.io/ .
The good news is that SWIG also supports Go ( http://www.swig.org/Doc2.0/Go.html ) and Bazel introduces support for Go ( http://bazel.io/docs/be/go.html ) after the 0.1.1 version.
The bad news are that I couldn't build the system using Bazel 0.1.1 by many different problems with the linker, etc that I'm trying to resolve. And the other problem is that we have to create the .i files for SWIG in order to prepare the build for Go, I almost have this part done, but I'm also having a lot of problems.
The main issue is that I have no experience with Bazel and SWIG, so I'm spending most of the time reading documentation and trying to fix stupid problems caused because of I misunderstand something from the docu.

In case of I finally can't prepare a wrapper using SWIG, I think that I'm going to try to prepare the prototype using cgo directly, I already have a small proof of concept that generates the session in Go, but it would be much better if the libs works with SWIG and Bazel as the Python libs does.

I'm not having too much spare time lately, but it is being super interesting for me to research how all this system is done, the code is pretty well documented, and easy to understand.

from tensorflow.

girving avatar girving commented on April 19, 2024 1

@dave-andersen What's the status of this?

from tensorflow.

dave-andersen avatar dave-andersen commented on April 19, 2024 1

Realistically, TBD. I've maybe found someone @ google who might be interested in taking ownership of the bigger picture of TF + go. I think we're of a mind that the current state isn't what we need yet -- it's not integrated with the normal tests, nor is it go-buildable in the normal way. Those are the major blockers to getting it into the main branch, but I think there's a further concern that because of the amount of magic that still happens only in Python with shapes & gradients, we're not at a point where we can have the Go bindings we'd like as a first-class supported language. There's some ongoing work looking at improving our ability to support more languages, and I think some of the momentum on Go is stalled waiting on that.

from tensorflow.

jhseu avatar jhseu commented on April 19, 2024 1

We've got a handle on them :) For obvious reasons, we're particular about the structure of the Go API and some details (like autosubmitting generated protobuf code).

We need some additions to the C API (work-in-progress) to complete them. Should be in about a week or two.

from tensorflow.

helinwang avatar helinwang commented on April 19, 2024 1

I created this package to enable tensorboard for tensorflow golang api. Commenting here in case anyone interested https://github.com/helinwang/tfsum

from tensorflow.

damienstanton avatar damienstanton commented on April 19, 2024 1

@helinwang, very cool! If you need any help with this I would be happy to contribute

from tensorflow.

redwrasse avatar redwrasse commented on April 19, 2024 1

Apologies in advance for not following this issue thoroughly, but what's the state of the Go binding? If it's finished can someone point me to tutorial implementations, for example linear regression over the MNIST dataset? Thanks

from tensorflow.

jamesliu96 avatar jamesliu96 commented on April 19, 2024

👍

from tensorflow.

pcasaretto avatar pcasaretto commented on April 19, 2024

I'd be interested in helping @alonsovidales !

from tensorflow.

jamesliu96 avatar jamesliu96 commented on April 19, 2024

Idk if I'm qualified but I'd like to do whatever to help @alonsovidales !

from tensorflow.

chai2010 avatar chai2010 commented on April 19, 2024

+1/0

from tensorflow.

jamesliu96 avatar jamesliu96 commented on April 19, 2024

agree! wait till weekend then we can decide.

from tensorflow.

hachi8833 avatar hachi8833 commented on April 19, 2024

👍

from tensorflow.

1l0 avatar 1l0 commented on April 19, 2024

Great move!

from tensorflow.

vincentvanhoucke avatar vincentvanhoucke commented on April 19, 2024

The current state of Go is that we have a few people who've expressed interest internally in contributing language bindings, but nothing concrete at the moment. I would suggest that if you got started on this, which would be awesome, you could whip up a proposal (preferably in the form of prototype code) and run the design by the discuss mailing list.

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

Thanks @vincentvanhoucke , then, let's try to prepare a prototype and let's see how it works :) I had been digging a bit in the Python libs, and it shouldn't be too difficult to prepare the Go libraries.

Btw, which is the discuss mailing list?, I can't find it.

I love the project and it would be awesome for me be able to contribute.

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

Found the discuss mailing list, sorry :)

from tensorflow.

davidzchen avatar davidzchen commented on April 19, 2024

Should we keep this issue open to track this? I think all the other Go-related issues were de-duped against this one.

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

Sure, better keep this issue open so other people can find it easily.

I think that it would be better to move the conversation about the prototype, etc to another place, we can:

  • Use the official "discuss mailing list"
  • Create a new mailing list just for this
  • Use the issue tracker of a GitHub repo, I created this repo just to start playing around: https://github.com/alonsovidales/tensorflow

Regarding to the prototype, my proposal is to use one of the examples:
http://tensorflow.org/tutorials/mnist/beginners/index.md
And studying how the Python libs works, port just all the involved code to execute the example, since an example like the one for beginners covers most of the functionality, and can give us a great overview of how to port all the libraries.
To reproduce the behaviour of the Python libs, the best option would be to use TDD, we can go method by method and based on the input/output of the python code prepare the test on Go.

We can distribute the tasks to prepare the prototype or work in parallel and put all our ideas together at the end. Since for me the goal here is try to get a general idea about how to implement the final version, tasks that we have to do, etc, I think that work in parallel can be a good approach.

What do you think?

from tensorflow.

babakgh avatar babakgh commented on April 19, 2024

👍

from tensorflow.

nathangoulding avatar nathangoulding commented on April 19, 2024

It seems like Bazel doesn't yet have C/C++ interop for Go so cgo may be the only option unless Bazel adds support for it soon.
http://bazel.io/docs/be/go.html

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

I think that it would be possible to do a small workaround using a sh_binary to compile run swig like they are doing with the Python libs:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/BUILD#L21
But by the moment for the PoC I'm using an ugly MakeFile:
https://github.com/alonsovidales/tensorflow/blob/master/tensorflow/go/makefile
And setting the flags for the linker here:
https://github.com/alonsovidales/tensorflow/blob/master/tensorflow/go/cgoflags.go
And also a wrapper to access the C++ libraries from C:
https://github.com/alonsovidales/tensorflow/tree/master/tensorflow/go/wrapper
But this is just for the prototype, I plan to move all to Bazel + SWIG :)

from tensorflow.

nathangoulding avatar nathangoulding commented on April 19, 2024

I'm still not 100% clear on the long-term delineation between the external library's responsibilities and the underlying TF C++ API.

From http://www.tensorflow.org/api_docs/cc/index.html, this sentence implies that maybe at some point in the future the C++ libraries will add the support to build the graphs: "TensorFlow's public C++ API includes only the API for executing graphs, as of version 0.5."

It seems like the supported way outside of python is to still use python to build the graph, then use tf.train.write_graph() to write the graph to a file, and then load it into a session in your language of choice and then run it using the C++ API.

Are you planning to port the graph building mechanism into Go? It seems like it might be a good idea to get the consensus of the TF dev team before embarking on something as ambitious as that if they're planning on supporting this in the public API at some point in the future.

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

Well, my idea is to build the graph in the Go libs as it is being builded by the Python libs. They are working on the C++ code, but by the moment it is a WIP and it is, by the moment, unstable.

I'm not sure about their future plans, but from my point of view have this process in Python is not a bad approach since the tensors takes a lot of advantage of the dynamic typing and operators overloading that Python offers, this makes the code more simple to write and to understand, this is being one of the biggest problem I'm having porting the code to Go. I also think that keep the graph building process in Python is a good idea since this process requires almost no time compared with the operations that are implemented in C++, so scarify simplicity in favour of performance don't makes too much sense. I think that they make the good choice here.

I'm planning to port the process to Go by two reasons:

  • You could create a pure Go application to train your model, that could be interesting for some situations.
  • I'm working on just a PoC, and I prefer to explore all the code in order to get a global idea of how all the different pieces works together.

And well, port the process is going to be funny for me :)

from tensorflow.

vladimirvivien avatar vladimirvivien commented on April 19, 2024

@alonsovidales any movement on your PoC ?

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

No :'( I had a personal problem and I couldn't spend a single min on personal projects during last month, I'll try to resume it on next week.

from tensorflow.

tmc avatar tmc commented on April 19, 2024

I have a start of a swig-based binding started here: tmc/tensorflow/go_bindings -- mostly cargo-culted and incomplete.

~/go/src/github.com/tensorflow/tensorflow(go_bindings)$ cat tensorflow_test.go
package tensorflow_test

import (
    "fmt"
    "testing"

    "github.com/davecgh/go-spew/spew"
    "github.com/golang/protobuf/proto"
    "github.com/tensorflow/tensorflow"
    tf "github.com/tensorflow/tensorflow/tensorflow/go"
)

var exampleGraph = `node {
  name: "output1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "Hello, TensorFlow!"
      }
    }
  }
}
node {
  name: "Const_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 10
      }
    }
  }
}
node {
  name: "Const_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 32
      }
    }
  }
}
node {
  name: "output2"
  op: "Add"
  input: "Const_1"
  input: "Const_2"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
version: 5`

func TestNewSession(t *testing.T) {
    graph := &tf.GraphDef{}
    if err := proto.UnmarshalText(exampleGraph, graph); err != nil {
        t.Fatal(err)
    }
    s, err := tensorflow.NewSession()
    if err := s.ExtendGraph(graph); err != nil {
        t.Fatal(err)
    }
    output, err := s.Run(nil, []string{"output1", "output2"}, nil)
    if err != nil {
        t.Fatal(err)
    }
    fmt.Println(output)
    for _, out := range output {
        spew.Dump(out, out.Data())
    }
}
⚛ ~/go/src/github.com/tensorflow/tensorflow(go_bindings)$ go test
[DT_STRING: dims:0 size:27 DT_INT32: dims:0 size:4]
(*tensorflow.Tensor)(0xc820011050)(DT_STRING: dims:0 size:27)
([]uint8) (len=27 cap=27) {
 00000000  00 00 00 00 00 00 00 00  12 48 65 6c 6c 6f 2c 20  |.........Hello, |
 00000010  54 65 6e 73 6f 72 46 6c  6f 77 21                 |TensorFlow!|
}
(*tensorflow.Tensor)(0xc820011080)(DT_INT32: dims:0 size:4)
([]uint8) (len=4 cap=4) {
 00000000  2a 00 00 00                                       |*...|
}
PASS
ok      github.com/tensorflow/tensorflow    0.082s

from tensorflow.

michilu avatar michilu commented on April 19, 2024

👍

from tensorflow.

lerenn avatar lerenn commented on April 19, 2024

👍

from tensorflow.

dave-andersen avatar dave-andersen commented on April 19, 2024

tmc sent a pull request - #1237 - which we should be able to get in with a few iterations.

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

Hi,
Based on the @tmc work I'm working on some helpers to create tensors from Go, to access to their data and so on. I'm also trying to cover all the code with tests.

This is the branch where I'm working:
https://github.com/alonsovidales/tensorflow/tree/go_bindings_tensors/tensorflow/go

There is a practical example in the README.md that shows how to create and export the Graph from Python, import it on Go, create some tensors from Go in an easy way and read the execution outputs. More or less all the necessary process to run our graphs in Go :)
You can also check the *_tests.go to see more practical examples.

This is a work in progress, there are some data types that are still not supported and I'm performing some important changes.
I've made a PR to the origin branch, pls check the code and let me know your thoughts, how to improve it, possible bugs, etc:
https://github.com/tmc/tensorflow/pull/1/files

I'll try to finish, test and stabilise the code as much as possible and prepare some of the tutos to work with the Go library. I plan to start with this one:
https://www.tensorflow.org/versions/r0.7/tutorials/image_recognition/index.html

I also plan to add also methods to save and load tensors and for Graph generation (just for fun and this perhaps could be useful in some situations, but I think that is a better approach to generate and test the Graph on Python), thanks to protobuf this shouldn't be difficult to achieve.

from tensorflow.

dave-andersen avatar dave-andersen commented on April 19, 2024

Closed by #1771.

from tensorflow.

tmc avatar tmc commented on April 19, 2024

#1771 appears to be in the 'go' branch but not master -- what's the plan to merge that in?

from tensorflow.

tmc avatar tmc commented on April 19, 2024

Fair enough. I personally just wanted a way to execute graphs vs have python-level support.

from tensorflow.

girving avatar girving commented on April 19, 2024

Let's leave this bug open then, to go along with the bunch of other open language bugs that are much less far along.

from tensorflow.

Mistobaan avatar Mistobaan commented on April 19, 2024

@alonsovidales are you still working on this ?
I tried the go branch after a rebase and it works on my mac. Now I would like to propose some changes with a PR (https://github.com/Mistobaan/tensorflow/tree/go). But clearly the current go branch is behind respect to master and the PR is huge.
Should we rebase the main go branch or merge it in master and keep continuing the development there?
What is the best feasible strategy to keep patches coming into the go interface?

from tensorflow.

alonsovidales avatar alonsovidales commented on April 19, 2024

Hi @Mistobaan , I've been a bit out the last months because I'm moving to Dublin. @dave-andersen mentions on a previous comment that someone at Google could be interested on taking ownership of the Go development, the code was lent in the Go branch waiting for the integration with Jenkins and for other people to play with it and provide some feedback, I'm not sure about what is the current status.
I've took a look at your commit and it seems really interesting, I think that you could make a PR to the current branch and we can care to rebase it in a future :)
I'm using the Go libs on some personal projects and I got feedback from other people that are using them, It would be awesome for us to count with improvements.

from tensorflow.

Mistobaan avatar Mistobaan commented on April 19, 2024

@alonsovidales see #3258

from tensorflow.

damienstanton avatar damienstanton commented on April 19, 2024

FYI #3542 resolves a build error I experienced on the Go branch.

from tensorflow.

jmhodges avatar jmhodges commented on April 19, 2024

I've just published a PR to bump the go branch to the latest master and do some minor fixups in #4223

from tensorflow.

jmhodges avatar jmhodges commented on April 19, 2024

I'm not sure what's left to do in the go branch to get it merged to master. I might be able to help!

from tensorflow.

jmhodges avatar jmhodges commented on April 19, 2024

Updated #4223.

I think there was a goal of getting this to build with go get and go install. Currently, the generated protobuf doesn't have the right import paths to build correctly. (It's a version of the problem in golang/protobuf#230)

We're going to have to probably do some sed work to fix it.

from tensorflow.

jmhodges avatar jmhodges commented on April 19, 2024

That's cool! Didn't know! Maybe missed a comment. Anything I can do to help?

from tensorflow.

pyanfield avatar pyanfield commented on April 19, 2024

@jhseu , do you have any plan about when we can get the official release?

from tensorflow.

jmhodges avatar jmhodges commented on April 19, 2024

Cool! What's the plan for the protobuf generated packages? I'm currently copying the proto files into my own build to pop out the Go code I want and they just barely don't fit there trivially (because protoc-gen-proto has some rules about where its generated code goes and what import paths they refer to each other with)

from tensorflow.

jmhodges avatar jmhodges commented on April 19, 2024

Oh, man, after weeks of hunting, I just found golang/protobuf#139 so now I understand how it'll work

from tensorflow.

asimshankar avatar asimshankar commented on April 19, 2024

@jmhodges : So far whatever functionality the Go API provides doesn't require protobuf. But of course, the functionality is limited at this point.

If y'all have any feedback on the API as it is today and what you'd find most useful in terms of additional functionality or changes, we'd greatly appreciate that.

from tensorflow.

sdeoras avatar sdeoras commented on April 19, 2024

Hi Folks, I am just curious why wrapper util functions in "op" folder don't seem to take node name as input argument. This prevents me from calling functions twice in a scope. For instance, I can't define two constants in a graph. There are no errors when I explicitly define constants or placeholders using tf.OpSpec by providing values for the Name field.

from tensorflow.

asimshankar avatar asimshankar commented on April 19, 2024

@sdeoras : The alternative for now is to use Subscope, which is used in the label image example as well (resulting in constants named make_batch/Const, size/Const etc. in the graph).

The answer to your question though is just that it felt less cumbersome to require a name argument on every op addition when it can often be elided. We'd want it to be an "optional" argument. One option is to do what we do in C++ graph construction API and add a WithOpName to the Scope type.

If you have strong opinions or suggestions, please do share (though perhaps in a separate issue focused on this aspect). In the mean time, hopefully the alternative suggested above lets you make progress.

from tensorflow.

sdeoras avatar sdeoras commented on April 19, 2024

@asimshankar : Thanks for your quick reply. I started working with scope as opposed to working directly with graphs and finding the workflow better. Yes, subscope solves the namespace issue, I also don't have to name every operation and error management is so much easier, i.e., basically catch error at scope finalize step.

from tensorflow.

sdeoras avatar sdeoras commented on April 19, 2024

Hi Folks, I am not sure if this thread is the best place to ask TF GO API related questions. If not, please suggest a link to the right forum.

So I can't seem to get following code to work. It complains on second use of op.Reshape at runtime but allows two calls to op.Const... what am I doing wrong?
```
scope := op.NewScope()
x := op.Placeholder(scope, tf.Double)
s := op.Const(scope, []int32{3, 3})
y := op.Reshape(scope, x, s)
yInv := op.MatrixInverse(scope, y)
s2 := op.Const(scope.SubScope("scope.a"), []int32{9})
yInvReshaped := op.Reshape(scope.SubScope("scope.b"), yInv, s2)
graph, err := scope.Finalize()
if err != nil {
t.Fatal(err)
}

from tensorflow.

asimshankar avatar asimshankar commented on April 19, 2024

Please use stackoverflow for general questions, or file new github issues for bugs/feature requests. In this case I've filed #6799 - I think I know what the problem is, will update there.

from tensorflow.

sdeoras avatar sdeoras commented on April 19, 2024

Hi Folks, I am running into another issue with shape argument in op.VarHandleOp. Pl. advise if this should be filed as a bug.


package bugs

import (
	tf "github.com/tensorflow/tensorflow/tensorflow/go"
	"github.com/tensorflow/tensorflow/tensorflow/go/op"
	"testing"
)

func TestVarHandleOpShape(t *testing.T) {
	scope := op.NewScope()
	_ = op.VarHandleOp(scope, tf.Int32, []int64{2, 3})
	_, err := scope.Finalize()
	if err != nil {
		t.Fatal(err)
	}
}

/*
=== RUN   TestVarHandleOpShape
--- FAIL: TestVarHandleOpShape (0.03s)
        bugs_test.go:14: failed to add operation "VarHandleOp": AttrValue had value with type 'list(int)' when 'shape' expected
                         for attr 'shape'
                        ; NodeDef: VarHandleOp = VarHandleOp[_class=[], container="", dtype=DT_INT32, shape=[2, 3], shared_name=""](); Op<name=VarHandleOp; signature= -> resource:resource; attr=container:string,default=""; attr=shared_name:string,default=""; attr=dtype:type; attr=shape:shape; is_stateful=true> (Stacktrace: goroutine 5 [running]:
                runtime/debug.Stack(0x0, 0x0, 0x0)
                        /usr/lib/golang/src/runtime/debug/stack.go:24 +0x79
                github.com/tensorflow/tensorflow/tensorflow/go/op.(*Scope).UpdateErr(0xc42000c420, 0x53e4eb, 0xb, 0x7cce00, 0xc420054040)
                        /home/sdeoras/go/src/github.com/tensorflow/tensorflow/tensorflow/go/op/scope.go:113 +0x72
                github.com/tensorflow/tensorflow/tensorflow/go/op.(*Scope).AddOperation(0xc42000c420, 0x53e4eb, 0xb, 0x53e4eb, 0xb, 0x0, 0x0, 0x0, 0xc42000c450, 0xc42000c3f0)
                        /home/sdeoras/go/src/github.com/tensorflow/tensorflow/tensorflow/go/op/scope.go:78 +0xf9
                github.com/tensorflow/tensorflow/tensorflow/go/op.VarHandleOp(0xc42000c420, 0xc400000003, 0xc4200106f0, 0x2, 0x2, 0x0, 0x0, 0x0, 0x171e4d44, 0xc420051f78)
                        /home/sdeoras/go/src/github.com/tensorflow/tensorflow/tensorflow/go/op/wrappers.go:14045 +0x27d
                bitbucket.hgst.com/x/tensorflow.git/tfutil.TestVarHandleOpShape(0xc4200b8180)
                        /home/sdeoras/go/src/bitbucket.hgst.com/x/tensorflow.git/tfutil/bugs_test.go:11 +0x96
                testing.tRunner(0xc4200b8180, 0x54f7f0)
                        /usr/lib/golang/src/testing/testing.go:610 +0x81
                created by testing.(*T).Run
                        /usr/lib/golang/src/testing/testing.go:646 +0x2ec
                )
FAIL
exit status 1
FAIL    bitbucket.hgst.com/x/tensorflow.git/tfutil      0.130s
 */

from tensorflow.

asimshankar avatar asimshankar commented on April 19, 2024

@sdeoras: Yeah, shape attributes handling wasn't finished, but should be easy. Feel free to file a new issue for this (and don't hesitate to file new issues for other things instead of adding to this closed one).

from tensorflow.

sdeoras avatar sdeoras commented on April 19, 2024

@helinwang Great work with enabling TensorBoard! Could you please include a license file for us to be able to use it for commercial purposes?

from tensorflow.

helinwang avatar helinwang commented on April 19, 2024

@sdeoras Glad to know that the library helps! Added 3-clause BSD.

from tensorflow.

sdeoras avatar sdeoras commented on April 19, 2024

Thank you @helinwang

from tensorflow.

lipixun avatar lipixun commented on April 19, 2024

@4d55397500 I believe the go binding of tensorflow is still under heavy developing. See: https://godoc.org/github.com/tensorflow/tensorflow/tensorflow/go

It is not stable enough and lots of features haven't been implemented.

(I've just compiled the latest version and sadly speaking that it can not pass the builtin test on mac os x. A signal kill occurred when running tests.)

Apologies. After upgrade go from 1.8 to 1.8.1, tests passed.

from tensorflow.

asimshankar avatar asimshankar commented on April 19, 2024

@lipixun @4d55397500 : The Go APIs available today are intended to be usable and tests for both Linux and OS X are included in the continuous builds on Jenkins.

@4d55397500 : The APIs are a little low level though. They should be sufficient to build things like networks for MNIST and linear regression models on top of, but at this time there are no plans for writing convenience higher level APIs.

from tensorflow.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.