Skip to content

Commit 3b9463c

Browse files
committed
Updates to org name.
1 parent b9562a3 commit 3b9463c

File tree

5 files changed

+119
-75
lines changed

5 files changed

+119
-75
lines changed

build.sbt

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ val scriptsDir = settingKey[File](
2020
)
2121

2222
val baseSettings = Seq(
23-
organization := "io.github.transcendent-ai-labs",
23+
organization := "io.github.tailhq",
2424
scalaVersion in ThisBuild := scala,
2525
//crossScalaVersions in ThisBuild := crossScala,
2626
resolvers in ThisBuild ++= Seq(

mkdocs.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ site_name: DynaML User Guide
22
site_dir: 'site'
33
site_description: 'User guide and documentation for the DynaML machine learning library and API'
44
site_author: 'Mandar Chandorkar'
5-
site_url: 'https://transcendent-ai-labs.github.io/DynaML'
5+
site_url: 'https://tailhq.github.io/DynaML'
66
copyright: 'Copyright © 2015 Mandar Chandorkar'
77
docs_dir: 'docs-old'
88
nav:
@@ -170,7 +170,7 @@ extra:
170170
disqus: 'dynaml'
171171
social:
172172
- type: 'github'
173-
link: 'https://github.com/transcendent-ai-labs'
173+
link: 'https://github.com/tailhq'
174174
- type: 'twitter'
175175
link: 'https://twitter.com/dyna_ml'
176176

notebooks/data-pipes.ipynb

+10-10
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
{
5252
"data": {
5353
"text/plain": [
54-
"\u001b[36mdeltaOperationARXMultiOutput\u001b[39m: (\u001b[32mList\u001b[39m[\u001b[32mInt\u001b[39m], \u001b[32mList\u001b[39m[\u001b[32mInt\u001b[39m]) => \u001b[32mDataPipe\u001b[39m[\u001b[32mIterable\u001b[39m[(\u001b[32mDouble\u001b[39m, \u001b[32mDenseVector\u001b[39m[\u001b[32mDouble\u001b[39m])], \u001b[32mStream\u001b[39m[(\u001b[32mDenseVector\u001b[39m[\u001b[32mDouble\u001b[39m], \u001b[32mDenseVector\u001b[39m[\u001b[32mDouble\u001b[39m])]] = ammonite.$sess.cmd1$Helper$$Lambda$2099/880113504@f8d0a54"
54+
"\u001b[36mdeltaOperationARXMultiOutput\u001b[39m: (\u001b[32mList\u001b[39m[\u001b[32mInt\u001b[39m], \u001b[32mList\u001b[39m[\u001b[32mInt\u001b[39m]) => \u001b[32mDataPipe\u001b[39m[\u001b[32mIterable\u001b[39m[(\u001b[32mDouble\u001b[39m, \u001b[32mDenseVector\u001b[39m[\u001b[32mDouble\u001b[39m])], \u001b[32mStream\u001b[39m[(\u001b[32mDenseVector\u001b[39m[\u001b[32mDouble\u001b[39m], \u001b[32mDenseVector\u001b[39m[\u001b[32mDouble\u001b[39m])]] = ammonite.$sess.cmd1$Helper$$Lambda$2130/0x0000000840af3040@411aba43"
5555
]
5656
},
5757
"execution_count": 2,
@@ -123,18 +123,18 @@
123123
" \u001b[33mComposedPipe\u001b[39m(\n",
124124
" \u001b[33mComposedPipe\u001b[39m(\n",
125125
" \u001b[33mComposedPipe\u001b[39m(\n",
126-
" io.github.mandar2812.dynaml.pipes.DataPipe$$anon$2@c96dcb8,\n",
127-
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$2@4c2fa5da\n",
126+
" io.github.mandar2812.dynaml.pipes.DataPipe$$anon$2@56c77273,\n",
127+
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$2@3a1fc26c\n",
128128
" ),\n",
129-
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$2@55a78827\n",
129+
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$2@6c1bacc1\n",
130130
" ),\n",
131-
" io.github.mandar2812.dynaml.pipes.DataPipe$$anon$2@493a4f4d\n",
131+
" io.github.mandar2812.dynaml.pipes.DataPipe$$anon$2@4d10e0ee\n",
132132
" ),\n",
133-
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$4@74cfc8d9\n",
133+
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$4@4f5ea719\n",
134134
" ),\n",
135-
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$2@45ffa2ef\n",
135+
" io.github.mandar2812.dynaml.pipes.IterableDataPipe$$anon$2@b16103c\n",
136136
" ),\n",
137-
" io.github.mandar2812.dynaml.pipes.DataPipe$$anon$2@2c70ecc7\n",
137+
" io.github.mandar2812.dynaml.pipes.DataPipe$$anon$2@3adad83b\n",
138138
")"
139139
]
140140
},
@@ -217,11 +217,11 @@
217217
},
218218
"language_info": {
219219
"codemirror_mode": "text/x-scala",
220-
"file_extension": ".scala",
220+
"file_extension": ".sc",
221221
"mimetype": "text/x-scala",
222222
"name": "scala",
223223
"nbconvert_exporter": "script",
224-
"version": "2.12.11"
224+
"version": "2.12.12"
225225
}
226226
},
227227
"nbformat": 4,

notebooks/linear-regression.ipynb

+12-62
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"\u001b[32mimport \u001b[39m\u001b[36mscala.util.Random\n",
1717
"\n",
1818
"\u001b[39m\n",
19-
"\u001b[36mrandom\u001b[39m: \u001b[32mRandom\u001b[39m = scala.util.Random@77cb9c1e"
19+
"\u001b[36mrandom\u001b[39m: \u001b[32mRandom\u001b[39m = scala.util.Random@50d92c27"
2020
]
2121
},
2222
"execution_count": 1,
@@ -41,7 +41,7 @@
4141
{
4242
"data": {
4343
"text/plain": [
44-
"\u001b[36mweight\u001b[39m: \u001b[32mFloat\u001b[39m = \u001b[32m0.74208564F\u001b[39m\n",
44+
"\u001b[36mweight\u001b[39m: \u001b[32mFloat\u001b[39m = \u001b[32m0.84711546F\u001b[39m\n",
4545
"defined \u001b[32mfunction\u001b[39m \u001b[36mbatch\u001b[39m"
4646
]
4747
},
@@ -84,69 +84,19 @@
8484
"output_type": "stream",
8585
"text": [
8686
"SLF4J: Class path contains multiple SLF4J providers.\n",
87-
"SLF4J: Found provider [org.slf4j.log4j12.Log4j12ServiceProvider@4e09428c]\n",
88-
"SLF4J: Found provider [org.slf4j.helpers.NOPServiceProvider@6366d536]\n",
87+
"SLF4J: Found provider [org.slf4j.log4j12.Log4j12ServiceProvider@5c28b4ee]\n",
88+
"SLF4J: Found provider [org.slf4j.helpers.NOPServiceProvider@5e804977]\n",
8989
"SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.\n",
90-
"SLF4J: Actual provider is of type [org.slf4j.log4j12.Log4j12ServiceProvider@4e09428c]\n"
90+
"SLF4J: Actual provider is of type [org.slf4j.log4j12.Log4j12ServiceProvider@5c28b4ee]\n"
9191
]
9292
},
9393
{
94-
"name": "stdout",
95-
"output_type": "stream",
96-
"text": [
97-
"Training the linear regression model.\n",
98-
"Train loss at iteration 0 = 1831.6814 (weight = 1.0)\n",
99-
"Train loss at iteration 1 = 222.29132 (weight = 0.6703382)\n",
100-
"Train loss at iteration 2 = 17.351349 (weight = 0.76244646)\n",
101-
"Train loss at iteration 3 = 1.3862652 (weight = 0.736524)\n",
102-
"Train loss at iteration 4 = 0.10259153 (weight = 0.74354696)\n",
103-
"Train loss at iteration 5 = 0.0070248283 (weight = 0.74171674)\n",
104-
"Train loss at iteration 6 = 4.5134925E-4 (weight = 0.74218255)\n",
105-
"Train loss at iteration 7 = 3.1532058E-5 (weight = 0.7420587)\n",
106-
"Train loss at iteration 8 = 2.427319E-6 (weight = 0.74209297)\n",
107-
"Train loss at iteration 9 = 1.7987655E-7 (weight = 0.7420836)\n",
108-
"Train loss at iteration 10 = 1.3720174E-8 (weight = 0.7420862)\n",
109-
"Train loss at iteration 11 = 9.51544E-10 (weight = 0.7420855)\n",
110-
"Train loss at iteration 12 = 4.9631847E-11 (weight = 0.7420857)\n",
111-
"Train loss at iteration 13 = 1.3894611E-11 (weight = 0.74208564)\n",
112-
"Train loss at iteration 14 = 0.0 (weight = 0.74208564)\n",
113-
"Train loss at iteration 15 = 0.0 (weight = 0.74208564)\n",
114-
"Train loss at iteration 16 = 0.0 (weight = 0.74208564)\n",
115-
"Train loss at iteration 17 = 0.0 (weight = 0.74208564)\n",
116-
"Train loss at iteration 18 = 0.0 (weight = 0.74208564)\n",
117-
"Train loss at iteration 19 = 0.0 (weight = 0.74208564)\n",
118-
"Train loss at iteration 20 = 0.0 (weight = 0.74208564)\n",
119-
"Train loss at iteration 21 = 0.0 (weight = 0.74208564)\n",
120-
"Train loss at iteration 22 = 0.0 (weight = 0.74208564)\n",
121-
"Train loss at iteration 23 = 0.0 (weight = 0.74208564)\n",
122-
"Train loss at iteration 24 = 0.0 (weight = 0.74208564)\n",
123-
"Train loss at iteration 25 = 0.0 (weight = 0.74208564)\n",
124-
"Trained weight value: 0.74208564\n",
125-
"True weight value: 0.74208564\n"
94+
"ename": "",
95+
"evalue": "",
96+
"output_type": "error",
97+
"traceback": [
98+
"\u001b[31morg.platanios.tensorflow.jni.NotFoundException: /tmp/tensorflow_scala_native_libraries4907677013344669647/libtensorflow_ops.so: undefined symbol: _ZN10tensorflow14kernel_factory17OpKernelRegistrar12InitInternalEPKNS_9KernelDefEN4absl11string_viewESt10unique_ptrINS0_15OpKernelFactoryESt14default_deleteIS8_EE\u001b[39m\n org.platanios.tensorflow.jni.TensorFlow$.loadOpLibrary(\u001b[32mNative Method\u001b[39m)\n org.platanios.tensorflow.jni.TensorFlow$.$anonfun$load$6(\u001b[32mTensorFlow.scala\u001b[39m:\u001b[32m107\u001b[39m)\n scala.Option.foreach(\u001b[32mOption.scala\u001b[39m:\u001b[32m407\u001b[39m)\n org.platanios.tensorflow.jni.TensorFlow$.load(\u001b[32mTensorFlow.scala\u001b[39m:\u001b[32m107\u001b[39m)\n org.platanios.tensorflow.jni.TensorFlow$.<init>(\u001b[32mTensorFlow.scala\u001b[39m:\u001b[32m155\u001b[39m)\n org.platanios.tensorflow.jni.TensorFlow$.<clinit>(\u001b[32mTensorFlow.scala\u001b[39m:\u001b[32m-1\u001b[39m)\n org.platanios.tensorflow.jni.Graph$.<init>(\u001b[32mGraph.scala\u001b[39m:\u001b[32m22\u001b[39m)\n org.platanios.tensorflow.jni.Graph$.<clinit>(\u001b[32mGraph.scala\u001b[39m:\u001b[32m-1\u001b[39m)\n org.platanios.tensorflow.api.core.Graph$.apply(\u001b[32mGraph.scala\u001b[39m:\u001b[32m902\u001b[39m)\n org.platanios.tensorflow.api.core.package$.<init>(\u001b[32mpackage.scala\u001b[39m:\u001b[32m26\u001b[39m)\n org.platanios.tensorflow.api.core.package$.<clinit>(\u001b[32mpackage.scala\u001b[39m:\u001b[32m-1\u001b[39m)\n org.platanios.tensorflow.api.ops.package$.<init>(\u001b[32mpackage.scala\u001b[39m:\u001b[32m44\u001b[39m)\n org.platanios.tensorflow.api.ops.package$.<clinit>(\u001b[32mpackage.scala\u001b[39m:\u001b[32m-1\u001b[39m)\n org.platanios.tensorflow.api.ops.Op$Builder.<init>(\u001b[32mOp.scala\u001b[39m:\u001b[32m2574\u001b[39m)\n org.platanios.tensorflow.api.ops.basic.Constructors.placeholder(\u001b[32mConstructors.scala\u001b[39m:\u001b[32m396\u001b[39m)\n org.platanios.tensorflow.api.ops.basic.Constructors.placeholder$(\u001b[32mConstructors.scala\u001b[39m:\u001b[32m392\u001b[39m)\n org.platanios.tensorflow.api.package$tf$.placeholder(\u001b[32mpackage.scala\u001b[39m:\u001b[32m294\u001b[39m)\n ammonite.$sess.cmd2$Helper.<init>(\u001b[32mcmd2.sc\u001b[39m:\u001b[32m2\u001b[39m)\n ammonite.$sess.cmd2$.<init>(\u001b[32mcmd2.sc\u001b[39m:\u001b[32m7\u001b[39m)\n ammonite.$sess.cmd2$.<clinit>(\u001b[32mcmd2.sc\u001b[39m:\u001b[32m-1\u001b[39m)"
12699
]
127-
},
128-
{
129-
"data": {
130-
"text/plain": [
131-
"\u001b[36minputs\u001b[39m: \u001b[32mOutput\u001b[39m[\u001b[32mFloat\u001b[39m] = \u001b[33mOutput\u001b[39m(Placeholder, \u001b[32m0\u001b[39m)\n",
132-
"\u001b[36moutputs\u001b[39m: \u001b[32mOutput\u001b[39m[\u001b[32mFloat\u001b[39m] = \u001b[33mOutput\u001b[39m(Placeholder_1, \u001b[32m0\u001b[39m)\n",
133-
"\u001b[36mweights\u001b[39m: \u001b[32mVariable\u001b[39m[\u001b[32mFloat\u001b[39m] = \u001b[33mVariable\u001b[39m(\n",
134-
" \u001b[33mDataType\u001b[39m(\u001b[32m\"Float\"\u001b[39m, \u001b[32m1\u001b[39m, \u001b[33mSome\u001b[39m(\u001b[32m4\u001b[39m), DT_FLOAT),\n",
135-
" \u001b[33mOutput\u001b[39m(weights, \u001b[32m0\u001b[39m),\n",
136-
" weights/InitializationAssign,\n",
137-
" \u001b[32mnull\u001b[39m,\n",
138-
" \u001b[33mOutput\u001b[39m(weights/Read/ReadVariable, \u001b[32m0\u001b[39m)\n",
139-
")\n",
140-
"\u001b[36mpredictions\u001b[39m: \u001b[32mOutput\u001b[39m[\u001b[32mFloat\u001b[39m] = \u001b[33mOutput\u001b[39m(MatMul, \u001b[32m0\u001b[39m)\n",
141-
"\u001b[36mloss\u001b[39m: \u001b[32mOutput\u001b[39m[\u001b[32mFloat\u001b[39m] = \u001b[33mOutput\u001b[39m(Sum, \u001b[32m0\u001b[39m)\n",
142-
"\u001b[36mtrainOp\u001b[39m: \u001b[32mUntypedOp\u001b[39m = Minimize/Finish\n",
143-
"\u001b[36msession\u001b[39m: \u001b[32mSession\u001b[39m = org.platanios.tensorflow.api.core.client.Session@6d50edbb\n",
144-
"\u001b[36mres2_9\u001b[39m: \u001b[32mimplicits\u001b[39m.\u001b[32mhelpers\u001b[39m.\u001b[32mOutputToTensor\u001b[39m.\u001b[32m<refinement>\u001b[39m.this.type.\u001b[32mV\u001b[39m = \u001b[33mList\u001b[39m()"
145-
]
146-
},
147-
"execution_count": 3,
148-
"metadata": {},
149-
"output_type": "execute_result"
150100
}
151101
],
152102
"source": [
@@ -190,11 +140,11 @@
190140
},
191141
"language_info": {
192142
"codemirror_mode": "text/x-scala",
193-
"file_extension": ".scala",
143+
"file_extension": ".sc",
194144
"mimetype": "text/x-scala",
195145
"name": "scala",
196146
"nbconvert_exporter": "script",
197-
"version": "2.12.11"
147+
"version": "2.12.12"
198148
}
199149
},
200150
"nbformat": 4,

scripts/cifar_tf.sc

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import org.platanios.tensorflow.api._
2+
import org.platanios.tensorflow.api.core.types.UByte
3+
import org.platanios.tensorflow.api.implicits.helpers.{OutputStructure, OutputToDataType, OutputToShape}
4+
import org.platanios.tensorflow.api.ops.Output
5+
import org.platanios.tensorflow.api.ops.NN.SameConvPadding
6+
import org.platanios.tensorflow.data.image.CIFARLoader
7+
//import org.platanios.tensorflow.examples
8+
9+
import com.typesafe.scalalogging.Logger
10+
import org.slf4j.LoggerFactory
11+
12+
import java.nio.file.Paths
13+
14+
/**
15+
* @author Emmanouil Antonios Platanios
16+
*/
17+
object CIFAR {
18+
private val logger = Logger(LoggerFactory.getLogger("Examples / CIFAR"))
19+
20+
//implicit val evOutputStructureFloatLong : OutputStructure[(Output[Float], Output[Long])] = OutputStructure[(Output[Float], Output[Long])]
21+
//implicit val evOutputToDataTypeFloatLong : OutputToDataType.Aux[(Output[Float], Output[Long]), (DataType[Float], DataType[Long])] = OutputToDataType[(Output[Float], Output[Long])]
22+
//implicit val evOutputToShapeFloatLong : OutputToShape.Aux[(Output[Float], Output[Long]), (Shape, Shape)] = OutputToShape[(Output[Float], Output[Long])]
23+
24+
// Implicit helpers for Scala 2.11.
25+
//implicit val evOutputStructureFloatLong : OutputStructure[(Output[Float], Output[Long])] = evOutputStructureFloatLong
26+
//implicit val evOutputToDataTypeFloatLong: OutputToDataType[(Output[Float], Output[Long])] = evOutputToDataTypeFloatLong
27+
//implicit val evOutputToShapeFloatLong : OutputToShape[(Output[Float], Output[Long])] = evOutputToShapeFloatLong
28+
29+
def main(args: Array[String]): Unit = {
30+
val tempdir = home / "tmp"
31+
val dataSet =
32+
CIFARLoader.load(Paths.get(tempdir.toString()), CIFARLoader.CIFAR_10)
33+
34+
val trainImages = () => tf.data.datasetFromTensorSlices(dataSet.trainImages).map(_.toFloat)
35+
val trainLabels = () => tf.data.datasetFromTensorSlices(dataSet.trainLabels).map(_.toLong)
36+
val trainData = () =>
37+
trainImages().zip(trainLabels())
38+
.repeat()
39+
.shuffle(10000)
40+
.batch(64)
41+
.prefetch(10)
42+
43+
logger.info("Building the logistic regression model.")
44+
val input = tf.learn.Input(FLOAT32, Shape(-1, dataSet.trainImages.shape(1), dataSet.trainImages.shape(2), dataSet.trainImages.shape(3)))
45+
val trainInput = tf.learn.Input(INT64, Shape(-1))
46+
val layer = tf.learn.Conv2D[Float]("Layer_0/Conv2D", Shape(2, 2, 3, 16), 1, 1, SameConvPadding) >>
47+
tf.learn.AddBias[Float]("Layer_0/Bias") >>
48+
tf.learn.ReLU[Float]("Layer_0/ReLU", 0.1f) >>
49+
tf.learn.MaxPool[Float]("Layer_0/MaxPool", Seq(1, 2, 2, 1), 1, 1, SameConvPadding) >>
50+
tf.learn.Conv2D[Float]("Layer_1/Conv2D", Shape(2, 2, 16, 32), 1, 1, SameConvPadding) >>
51+
tf.learn.AddBias[Float]("Bias_1") >>
52+
tf.learn.ReLU[Float]("Layer_1/ReLU", 0.1f) >>
53+
tf.learn.MaxPool[Float]("Layer_1/MaxPool", Seq(1, 2, 2, 1), 1, 1, SameConvPadding) >>
54+
tf.learn.Flatten[Float]("Layer_2/Flatten") >>
55+
tf.learn.Linear[Float]("Layer_2/Linear", 256) >>
56+
tf.learn.ReLU[Float]("Layer_2/ReLU", 0.1f) >>
57+
tf.learn.Linear[Float]("OutputLayer/Linear", 10)
58+
val loss = tf.learn.SparseSoftmaxCrossEntropy[Float, Long, Float]("Loss/CrossEntropy") >>
59+
tf.learn.Mean[Float]("Loss/Mean") >>
60+
tf.learn.ScalarSummary[Float]("Loss/Summary", "Loss")
61+
val optimizer = tf.train.AdaGrad(0.1f)
62+
63+
val model = tf.learn.Model.simpleSupervised(
64+
input = input,
65+
trainInput = trainInput,
66+
layer = layer,
67+
loss = loss,
68+
optimizer = optimizer)
69+
70+
logger.info("Training the linear regression model.")
71+
val summariesDir = tempdir / "cifar_summaries"
72+
val estimator = tf.learn.FileBasedEstimator(
73+
model,
74+
tf.learn.Configuration(Some(summariesDir.toNIO)),
75+
tf.learn.StopCriteria(maxSteps = Some(100000)),
76+
Set(
77+
tf.learn.LossLogger(trigger = tf.learn.StepHookTrigger(100)),
78+
tf.learn.StepRateLogger(log = false, summaryDir = summariesDir.toNIO, trigger = tf.learn.StepHookTrigger(100)),
79+
tf.learn.CheckpointSaver(summariesDir.toNIO, tf.learn.StepHookTrigger(1000))),
80+
tensorBoardConfig = tf.learn.TensorBoardConfig(summariesDir.toNIO, reloadInterval = 1))
81+
estimator.train(trainData, tf.learn.StopCriteria(maxSteps = Some(1000)))
82+
83+
def accuracy(images: Tensor[UByte], labels: Tensor[UByte]): Float = {
84+
val predictions = estimator.infer(() => images.toFloat)
85+
predictions
86+
.argmax(1).toUByte
87+
.equal(labels).toFloat
88+
.mean().scalar
89+
}
90+
91+
logger.info(s"Train accuracy = ${accuracy(dataSet.trainImages, dataSet.trainLabels)}")
92+
logger.info(s"Test accuracy = ${accuracy(dataSet.testImages, dataSet.testLabels)}")
93+
}
94+
}

0 commit comments

Comments
 (0)